C#学习....

1.基础

//引用命名空间using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;//项目名或者命名空间
namespace _01_MY_First_Demo
{//Program类class Program{//程序的主入口或者Main函数static void Main(String[] agrs){Console.WriteLine("Hello, World11!");}}
}

2.打印日志

 Console.WriteLine("Hello, World11!");
//让程序暂停
Console.ReadKey();
---------------------------------------
//输入数据
string  name=  Console.ReadLine();
Console.WriteLine(name);

3.注释

//  1.单行注释2.多行注释 /*Console.WriteLine("Hello, World11!");Console.WriteLine("Hello, World11!");Console.WriteLine("Hello, World11!");Console.WriteLine("Hello, World11!");Console.WriteLine("Hello, World11!");Console.WriteLine("Hello, World11!");*//// 3.文档注释 /// <summary>/// 这个方法的作用/// </summary>/// <param name="agrs">第一个参数</param>

4.快捷键

ctrl+k+c :注释所选代码ctrl+k+u :取消注释所选代码ctrl+k+d  :快速对齐代码ctrl+j  :快速智能提示折叠没用代码#region  没用的代码//Console.ReadKey();//Console.ReadKey();//Console.ReadKey();//Console.ReadKey();//Console.ReadKey();#endregion

5.常见数据类型

在C#中,有以下常见的数据类型:1. 值类型(Value Types):- 整数类型:`int`, `long`, `short`, `byte`, `sbyte`, `uint`, `ulong`, `ushort`- 浮点类型:`float`, `double`- 字符类型:`char`- 布尔类型:`bool`- 十进制类型/金钱类型:`decimal`int A0 = 3;
float A1 = 520.1314131413141314F;
double A2 = 520.1314131413141314;
//用来存储金钱,后面要加个M
decimal A3 = 520.1314131413141314M;
Console.WriteLine(A1);
Console.WriteLine(A2);
Console.WriteLine(A3);//用来存储单个字符,需要用单引号引起来。
char ch1 = 'B';//定义字符使用单引号
char ch2 = '\x0042';//使用十六进制编码来表示字符B
Console.WriteLine(ch1);
Console.WriteLine(ch2);2. 引用类型(Reference Types):- 字符串类型:`string`- 数组类型:`int[]`, `string[]`, 等等- 类类型:自定义的类、结构体、枚举等- 接口类型:`interface`- 委托类型:`delegate`3. 空类型(Nullable Types):- 可以为null的值类型,通过在值类型后面加上`?`来声明,例如:`int?`, `bool?`, `double?`??用于判断一个变量在为null的时候返回一个指定的值double? num1 = null;
double? num2 = 3.14157;
double num3;
num3 = num1 ?? 5.34;此外,C#还提供了一些特殊的数据类型,如:
- `object`:所有类型的基类。
- `dynamic`:表示动态类型,可以在运行时进行类型检查和绑定。
- `var`:隐式类型,由编译器根据赋值语句自动推断类型。占位符int n1 = 10;int n2 = 20;int n3 = 30;Console.WriteLine("第一个数字是{0},第二个数字是{2},第三个数字是{1}", n1, n2, n3);Console.ReadKey();

6.占位符

1.c# 占位符
1.占位符的使用方法:先挖坑,再填坑。
注意点:
2.(1)挖了几个坑,就应该填几个坑,如果多填了,没效果,少填了,报异常。
(2)输出顺序,按照挖坑顺序。
3.代码示例:
(1)这个例子不仅展示了占位符的使用方法,也展示了占位符的输出顺序是按照挖坑顺序来的。  int n1 = 10;int n2 = 20;int n3 = 30;Console.WriteLine("第一个数字是{0},第二个数字是{2},第三个数字是{1}", n1, n2, n3);Console.ReadKey();

​7.常用转义字符

(1)转义字符指的就是一个'\'+一个特殊的字符,组成了一个具有特殊意义的字符。
(2)常用的转义字符
\n:表示换行
\":表示一个英文半角的双引号
\t:表示一个tab键的空格
\b:表示一个退格键(相当于删除键),放到字符串的两边没有效果
\r\n:windows操作系统不认识\n,只认识\r\n,相当于换行
\\:表示一个\
@符号:
(1):取消\在字符串中的转义作用,就是不转义
(2):将字符串按照原格式输出。Console.WriteLine("您好明天");
Console.WriteLine("您好\n明天");
Console.WriteLine("你想说什么\"\"");
Console.WriteLine("Hello\tWorld");
Console.WriteLine("别做\b梦了");
Console.WriteLine("\b别做梦了");
Console.WriteLine("别做梦了\b");
string str = "阳光明媚\n风和日丽";           System.IO.File.WriteAllText(@"C:\Users\86178\Desktop\1019.txt", str);
string path = "C:\\Users\\86178\\Desktop\\1019.txt";
string path1 = @"C:\Users\86178\Desktop\1019.txt";
Console.WriteLine(path);
Console.WriteLine(path1);
Console.WriteLine(@"阳光明媚风和日丽");
Console.ReadKey();

8.类型转换

1.显式类型转换(强制类型转换):
int intValue = 10;
double doubleValue = (double)intValue;2.隐式类型转换:
int intValue = 10;
double doubleValue = intValue;3.使用Convert类进行类型转换:
int intValue = 10;
string stringValue = Convert.ToString(intValue);//将 String 表达式转换成 double 类型
String sVaule;
double dVale;
dVale= Convert.ToDouble(sVaule);//将 String 表达式转换成 bool 类型
String MyString = " true ";
bool MyBool = Convert.ToBoolean( MyString );4.使用Parse方法进行字符串转换:
string stringValue = "10";
int intValue = int.Parse(stringValue);5.使用TryParse方法进行安全的字符串转换:
string stringValue = "10";
int intValue;
bool success = int.TryParse(stringValue, out intValue);
if (success)
{// 转换成功
}
else
{// 转换失败
}6.使用ToString方法将基本类型转换为字符串:
int intValue = 10;
string stringValue = intValue.ToString();

9.运算符

11

10.逻辑结构

-------------------if/else--------------------------if(布尔表达式)
{
语句块 1;
}else{
语句块 2;
}int num = 10;if (num > 0)
{Console.WriteLine("Number is positive");
}
else
{Console.WriteLine("Number is non-positive");
}---------------------------
if(布尔表达式 1)
{
语句块 1;
}else if(布尔表达式 2){
语句块 2;
}
…
else{
语句块 n;
}----------------swich/case--------------int day = 3;switch (day)
{case 1:Console.WriteLine("Monday");break;case 2:Console.WriteLine("Tuesday");break;case 3:Console.WriteLine("Wednesday");break;case 4:Console.WriteLine("Thursday");break;case 5:Console.WriteLine("Friday");break;default:Console.WriteLine("Weekend");break;
}
---------------while循环---------
int i = 0;while (i < 5)
{Console.WriteLine(i);i++;
}--------do/while-------------------
int i = 0;do
{Console.WriteLine(i);i++;
} while (i < 5);------------for循环---------------for (int i1 = 1; i1 <= 9; i1++){}

11.异常捕获

结构组成try
{<可能出现异常的代码>
}
catch
{<出现异常后执行的代码>
}
finally
{<不管有没有异常都要执行的代码(可选)>
}------------------------------
using System;namespace ConsoleApplication
{class Program{static void Main(string[] args){string s = Console.ReadLine();try{int n = int.Parse(s);Console.WriteLine(n);}catch{Console.WriteLine("输入的不是一个整数");}}}
}

12.三元表达式

Console.WriteLine("请输入第一个数字:");
int n1 = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第二个数字:");
int n2 = int.Parse(Console.ReadLine());int n3 = n1 > n2 ? n1 : n2;Console.WriteLine(n3);
Console.ReadKey();

13.常量

所谓常量,就是在程序的运行过程中其值不能被改变的量。常量的类型也可以是任何一种C#的数据类型。常量的定义格式为:const 常量数据类型 常量名(标识符)=常量值;const double PI=3.1415926;const string VERSION=“Visual Studio 2010”;

14.枚举


//枚举声明,如果不声明值,会默认从0 1 2 3开始排列public enum MyColors{Yellow = 1,Green = 2,Red = 4,Blue = 8}//枚举引用MyColors  ss=        MyColors.Yellow;Console.WriteLine(ss);
--------------
MyColors ss =        MyColors.Yellow;
//强制类型转换,获取数值int sd = (int)ss;Console.WriteLine(sd);

15.结构

//struct 语句为程序定义了一个带有多个成员的新的数据类型。例如,您可以按照如下的方式声明 Book 结构:
//可以帮助我们一次性声明多个不同类型的变量
//变量在程序运行期间只能存储一个值,而字段可以存储多个值。struct Books
{public string _title;//字段,不是变量,加下划线public string _author;public string _subject;public int _book_id;
};  Books b;b._title = "1";b._author = "2";Books A;A._title = "1";A._author = "2";

 16.数组

//1.数组是一个引用类型,所以需要使用 new 关键字来创建数组的实例
double[] balance = new double[10];
string[] sarray = { "Hello", "From", "Tutorials", "Point" };
//2.数组赋值//2.1索引赋值
double[] balance = new double[10];
balance[0] = 4500.0;//2.2声明时赋值
double[] balance = { 2340.0, 4523.69, 3421.0};
//2.3也可以省略数组的大小
int [] marks = new int[] { 99, 98, 92, 97, 95};3.访问数组元素
3.1通过索引访问
double salary = balance[9];
3.2遍历数组for循环 int[] n = new int[10];//声明一个大小是10的数组//初始化数组for(int i=0;i<10;i++){n[i] = i + 100;}
3.3遍历数组,foreachforeach(int j in n){int i = j - 100;Console.WriteLine("n[{0}]={1}", i, j);}

17.方法/函数

[public] [static] 返回值类型 方法名字([参数列表])
{方法体
}-------------------------------
public static int MaxArr(int[] a)
{int temp = Int32.MinValue;for (var i = 0; i < a.Length; i++){if (a[i]>temp){temp = a[i];}      }return temp;
}//方法调用,在main函数中调用
int result = MaxArr(new int[]{20,0,-10,30,25,-100});
Console.WriteLine("数组中最大值为:"+result);
//不自动关闭控制台,等待输入
Console.ReadLine();

18.高级参数out、ref、params

1//return返回一个值,out可以返回多个值using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ChuangzhiConsel
{class Program{static void Main(string[] args){int[] n = new int[11];int re_max;int re_min;double re_sum;double re_avg;Random r = new Random();for (int i = 0; i < n.Length; i++){n[i] = r.Next(0, 12);Console.Write("{0}  ", n[i]);}Test(n, out re_max, out re_min, out re_sum, out re_avg);//真正将re_avg保留两位Console.WriteLine("\n返回的最大值:{0},最小值:{1},总和:{2},均值:{3:0.000}", re_max, re_min, re_sum, re_avg);re_avg = Convert.ToDouble(re_avg.ToString("0.00"));Console.WriteLine("真正re_avg保留两位:{0}", re_avg);Console.ReadKey();}/// <summary>/// 计算最大、最小、总和、均值/// </summary>/// <param name="nums"></param>/// <param name="max"></param>/// <param name="min"></param>/// <param name="sum"></param>/// <param name="avg"></param>public static void Test(int[] nums, out int max, out int min, out double sum, out double avg){max = int.MinValue;min = int.MaxValue;sum = 0;avg = 0;for (int i = 0; i < nums.Length; i++){if (nums[i] > max){max = nums[i];}if (nums[i] < min){min = nums[i];}sum += nums[i];avg = sum / nums.Length;}}}
}
//ref将实参代入方法中进行修改,返回修改后了的值,不需要return一个定义的形参;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ChuangzhiConsel
{class Program{static void Main(string[] args){double salary;Console.WriteLine("请输入当前薪水:");salary  = Convert.ToDouble(Console.ReadLine());TestRef(ref salary);//没有声明类型接收Console.WriteLine("加薪后:{0}", salary);Console.ReadKey();}public static void TestRef(ref double s)//没有返回类型{s += 500;}}
}
-------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ChuangzhiConsel
{class Program{static void Main(string[] args){int num1 = 10;int num2 = 20;TestRef(ref num1, ref num2);Console.WriteLine("交换后:num1={0}  num2={1}",num1,num2);Console.ReadKey();}/// <summary>/// 用于不另外开辟变量的情况下,交换两个变量值/// </summary>/// <param name="n1">第一个变量</param>/// <param name="n2">第二个变量</param>public static void TestRef(ref int n1,ref int n2)//没有返回类型{n1 = n1 - n2;n2 = n1 + n2;n1 = n2 - n1;}}
}
//params可变参数,且参数为最后的定义,用于减少声明的参数 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ChuangzhiConsel
{class Program{static void Main(string[] args){//int[] array = { 1, 2, 3, 4, 5 };//替换12345这个数组Tets("张三", 1, 2, 3, 4, 5);Console.ReadKey();}public static void Tets(string name, params int[] grade){int sum = 0;for (int i = 0; i < grade.Length; i++){sum += grade[i];}Console.WriteLine("{0}的总成绩是:{1}", name, sum);}}
}

19.方法重载

问:什么是方法的重载?答:方法的名称相同,但是参数不同。参数不同,分为2种情况:情况一:如果参数的个数相同,那么参数的类型就不能相同。​情况二:如果参数的类型相同,那么参数的个数就不能相同。public static void M(int n1, int n2)
{int result = n1 + n2;
}
public static double M(double d1, double d2)
{return d1 + d2;
}
public static void M(int n1, int n2,int n3)
{int result = n1 + n2 + n3;
}
public static string M(string s1, string s2)
{return s1 + s2;
}

20.类


//1.写一个类using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _01_MY_First_Demo
{public class Person{public string _name;public int _age;public char _gender;public   void CHLSS(){Console.WriteLine("吃喝拉撒睡");}}
}//2.new一个对象进行调用Person sa = new Person();sa._name = "sss";sa._age = 6;sa.CHLSS();

21.属性

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _01_MY_First_Demo
{public class Person{private string _name;private int _age;public char _gender;public string Name { get => _name; set => _name = value; }public int Age { get => _age; set => _age = value; }public   void CHLSS(){Console.WriteLine("吃喝拉撒睡"+ Name+"年龄"+ Age);}}
}
---------------------------------------------------//创建对象Person sa = new Person();sa.Name = "sss";sa.Age = 6;sa.CHLSS();

22.静态和非静态的区别

//静态方法
public static void Max(){ }
//非静态方法
public void Max(){ }//静态类
public static class program{ }
//非静态类
public class program{ }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/101015.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常见的网络设备有哪些?分别有什么作用?

个人主页&#xff1a;insist--个人主页​​​​​​ 本文专栏&#xff1a;网络基础——带你走进网络世界 本专栏会持续更新网络基础知识&#xff0c;希望大家多多支持&#xff0c;让我们一起探索这个神奇而广阔的网络世界。 目录 一、网络设备的概述 二、常见的网络设备 1、…

【高危】MarkText<=0.17.1 存在DOM型XSS漏洞 (CVE-2023-2318)

漏洞描述 MarkText 是热门的开源Markdown编辑器&#xff0c;覆盖Windows/Linux/MacOS平台。 MarkText 0.17.1及之前版本中的 pasteCtrl 类未对用户可控的 HTML 内容进行过滤&#xff0c;当用户将攻击者可控的 HTML 代码粘贴至 MarkText 编辑器中时&#xff0c;攻击者可利用DO…

uni-app中监听网络状态,并在嵌入webView页面的组件中添加网络监测

uni-app中监听网络状态&#xff0c;并在嵌入webView页面的组件中添加网络监测 uni-app中监听网络状态 下载插件 打开网络异常组件页面&#xff0c;点击"下载插件并导入HBuilderX"按钮&#xff0c;打开HBuilderX软件后&#xff0c;选择需要导入插件的项目&#xff…

selenium +Jmeter 的性能测试

通过Jmeter快速将已有的Selenium 代码以性能测试的方式组织起来&#xff0c;并使用JMeter 丰富的报表展示测试结果 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By driver …

第3步---MySQL的DDL和DML操作

第3步---MySQL的DDL和DML操作 1.DDL操作 Data Defination Language 数据定义语言。创建数据库和表的不涉及到数据的操作。 1.1DDL基本操作 1.1.1数据库相关操作 ddl&#xff1a;创建数据库&#xff0c;创建和修改表 对数据库常见的操作&#xff1a; 操作数据库 -- 展示数据…

C语言小练习(二)

&#x1f31e; “去努力吧&#xff0c;最坏的结果不过是大器晚成&#xff01;” Day02 &#x1f4dd; 一.选择题&#x1f4dd;二.编程题 &#x1f4dd; 一.选择题 1.&#x1f388;、以下程序段的输出结果是&#xff08; &#xff09; #include <stdio.h> int main() {…

【C语言】三子棋游戏——超细教学

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;C语言 &#x1f525;该篇将结合之前的知识来实现 三子棋游戏。 目录&#xff1a; &#x1f31f;思路框架&#xff1a;测试游戏 &#x1f31f…

python爬虫9:实战2

python爬虫9&#xff1a;实战2 前言 ​ python实现网络爬虫非常简单&#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点&#xff0c;方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论&#xff0c;并不会对网站产生不好…

微服务基础概念【内含图解】

目录 拓展补充&#xff1a; 单体架构 分布式架构 面向服务的体系结构 云原生 微服务架构 什么是微服务&#xff1f; 微服务定义 拓展补充&#xff1a; 单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;最终打成一个包部署 优点&#x…

leetcode1094. 拼车(差分数组-java)

差分数组 leetcode 1094 拼车差分数组代码演示&#xff1a; 前缀和数组 leetcode 1094 拼车 难度 - 中等 原题链接 - 拼车 车上最初有 capacity 个空座位。车 只能 向一个方向行驶&#xff08;也就是说&#xff0c;不允许掉头或改变方向&#xff09; 给定整数 capacity 和一个数…

探究Java spring中jdk代理和cglib代理!

面对新鲜事物&#xff0c;我们要先了解在去探索事物的本质-默 目录 一.介绍二者代理模式 1.1.Jdk代理模式 1.2cglib代理模式 1.3二者区别 1.3.1有无接口 1.3.2灵活性 1.4对于两种代理模式的总结 1.4.1jdk代理模式 1.4.2cglib代理模式 二.两种代理模式应用场景 2.1jd…

SMS 与 WhatsApp 营销,哪个方式最适合你的业务?

SMS和 WhatsApp营销越来越受欢迎&#xff0c;因为它们为企业提供了接触目标受众的有效方式。超过 91%的客户希望收到来自企业的 SMS消息&#xff0c;使用WhatsAppAPI发送的消息的打开率高达99% &#xff0c;这证明了这两种形式的消息传递对于希望及时与客户沟通的企业来说变得重…

软考高级架构师下篇-12层次式架构设计理论与实践

目录 1. 考情分析2. 层次式体系结构概述3. 表现层框架设计4. 中间层框架设计5. 数据访问层设计6. 数据架构规划与设计7. 物联网层次架构设计8. 前文回顾1. 考情分析 根据考试大纲,层次式架构设计理论与实践知识点会涉及单选题型(约占2~5分)和案例题(25分),本小时内容偏重于方…

以创新点亮前路,戴尔科技开辟数实融合新格局

编辑&#xff1a;阿冒 设计&#xff1a;沐由 2023年&#xff0c;对于戴尔科技而言是特殊的一年&#xff0c;这是戴尔科技进入中国市场第25个年头——“巧合”的是&#xff0c;这25年也是中国产业经济发展最快&#xff0c;人们工作与生活发生变化最大的四分之一个世纪。 2023年&…

特斯拉Model 3的七年狂飙

‍ 作者 | 张祥威 编辑 | 德新 发布一周拿下32万张订单&#xff0c;之后用时五年&#xff0c;交付量突破100万辆。粗略计算&#xff0c;自2016年发布至今&#xff0c;特斯拉Model 3已交付超150万辆。 放眼新能源赛道&#xff0c;如此战绩 别无二家。 Model 3踩中纯电动车的…

SpringBoot 配置优先级

一般而言&#xff0c;SpringBoot支持配置文件进行配置&#xff0c;即在resources下的application.properties或application.yml。 关于配置优先级而言&#xff0c; application.properties>application.yml>application.yaml 另外JAVA程序程序还支持java系统配置和命令行…

Apipost数据模型功能详解

在API设计和开发过程中&#xff0c;存在许多瓶颈&#xff0c;其中一个主要问题是在遇到相似数据结构的API时会产生重复性较多的工作&#xff1a;在每个API中都编写相同的数据&#xff0c;这不仅浪费时间和精力&#xff0c;还容易出错并降低API的可维护性。 为了解决这个问题&a…

乖宝宠物上市,能否打破外资承包中国宠物口粮的现实

近日&#xff0c;乖宝宠物上市了&#xff0c;这是中国宠物行业成功挂牌的第三家公司。同时&#xff0c;昨日&#xff0c;宠物行业最大的盛事“亚洲宠物展”时隔3年&#xff0c;于昨日在上海成功回归。 这两件事情的叠加可谓是双喜临门&#xff0c;行业能够走到今天实属不易&…

VLAN实验

思路&#xff1a;交换机改接口模式&#xff0c;通过hybrid混杂模式更改权限&#xff0c;路由器用子接口 根据题干分析&#xff0c;得pc1 :v2 pc2:v3456 pc3:v2 pc4:v34 pc5:v35 pc6:v36 pc2/4/5/6不能允许v2&#xff0c;pc1/2访问&#xff0c;是通过路由器查找的&#xff0c;…

不得不说API效率快,批量采集淘宝1688等商品详情页面数据

API接口获取数据有以下几个好处&#xff1a; 1. 数据的实时性&#xff1a;通过API接口获取数据可以实时获取最新的数据&#xff0c;保证数据的及时性。这对于需要及时更新数据的应用非常重要&#xff0c;比如股票行情、天气预报等。 2. 数据的准确性&#xff1a;通过API接口获…