目录导航
C#入门重点知识记录
本内容为慕课网的视频教学的学习笔记:https://www.imooc.com/learn/422
关键字
关键字 class ,这个关键字的用途是声明类。比如上面例子中,类名叫做Program。
关键字 namespace ,这个关键字的用途是声明“命名空间”。比如上面例子中,命名空间叫做MyApp1。
关键字 using ,这个关键字的用途是导入命名空间。比如这句:**using** System.Text;
作用是导入System.Text命名空间中的类。
关键字 static (静态的)、 void (无返回值)、 string (字符串类型)。常常在Main()方法的声明中看到:**static** **void** Main(**string**[] args)
Main() 方法是 C# 中的特殊方法,是程序的入口,就是说,如果没有 Main ()方法,程序就无法启动。
注意:你会发现,所有关键字都是由小写字母组成的,C#语言中,大小写是严格区分的。
注释
注释,是代码中的一些“说明性文字”。注释本身不会参与程序的编译和运行,仅仅供程序员阅读。
注释分为:单行注释、多行注释、文档注释。
单行注释的符号是2条斜线(请注意斜线的方向),2条斜线右侧的内容就是注释,左侧的代码不会受影响。
多行注释以“/”开始,以“/”结束,之间的内容就是注释,可以包含多行。
文档注释写在类、方法或属性(以后会学到)的前面,它的符号是3条斜线“///”。
常用数据类型
字符类型 char ,存储用 '' (单引号)括起来的一个字符,例如:
char sex='男';//存储性别
字符串类型 string ,存储用“”(双引号)括起来的一串字符,例如:
string address="北京市宣武区牛街北口";//存储地址
整数类型 int ,存储整数,例如:
int age=23;//存储年龄
双精度浮点型 double ,存储小数,例如:
double salary=7991.63;//存储工资
以上四种是最常用的数据类型,其他常用类型,我们会随着课程深入慢慢介绍。
需要注意的是,某种类型的变量,只能存储这种类型的数据,否则,可能会出错。
变量命名规则
程序中的变量名、常量名、类名、方法名,都叫做标识符。C#有一套标识符的命名规则,如果命名时不遵守规则,就会出错。这套规则简单说有下面三条:
①标识符只能由英文字母、数字和下划线组成,不能包含空格和其他字符。
错误的标识符声明:string $user; //错在使用了其他字符
②变量名不能用数字开头。
错误的标识符声明:double 6h;//错在用数字开头
③不能用关键字当变量名。
错误的标识符声明:char static ;//错在用关键字**static**做变量名
运算符优先级
①括号。学数学的时候我们就知道,要先计算括号里面的内容。C#语言也是一样,如果有多层括号,要从里向外计算。括号优先级最高。
②一元运算符。有些运算符两边有2个操作数,比如2+3、6%5等等,这些叫做二元运算符。只有一个操作数的叫做一元运算符,它们的优先级高于二元运算符。一元运算符包括:++(自加) 、 --(自减) 、 !(逻辑非)。
③*(乘)、/(除)、%(取余)。
④+(加)、-(减)。
⑤>(大于)、=(大于等于)、
⑥==(等于)、!=(不等于)**。⑦&&(逻辑与)。
⑧||(逻辑或)。
⑨赋值运算符。包括:=、+=、-=、*=、/=、%=。
另外,还需要注意一点:优先级相同的运算符从左向右计算(赋值运算符相反)。
流程图
流程图是程序步骤的图形化表示方法。流程图中包括如下符号:
以上图形中,流程线用来连接相邻的两个步骤;每一个程序都有且仅有一个开始和结束。
switch
switch 中的(变量)只能是3种类型:整型(如 int )、字符型( char )、字符串类型( string )。
循环
C#中最常用的三种循环结构,下面我们小小总结一下:
数组
数组的声明和初始化语法如下:
数据类型数组名 = new 数据类型[长度];
注意:数组名像变量名一样要遵循标识符的命名规则;长度必须是整数
请注意:数组的索引从 0 开始递增。那么,数组 y 中 3 个元素的名字就变成了 y[0]、y[1]、y[2] 。最后再注意一点:数组经过初始化以后,数组元素有默认的初始值, double 类型为 0.0 , int 类型为 0 , char 类型为 'a' , bool 类型为 false , string 类型为 null 。
数组.Length 属性会返回数组的长度(即数组元素的个数)
初始化
声明并初始化数组的语法:
数据类型[] 数组名 = new 数据类型[]{初始值1,初始值2,...初始值3};
数组元素用索引来区分,索引从 0 开始。
数组的 Length 属性返回数组的长度,即数组元素的个数。
查找
循环访问一组数据,从中找出符合条件的数据,这样的算法叫做查找。
写查找的算法,需要做 2 件事,一是写循环访问每一个数据,二是对每一个数据进行验证。这样,就需要写 2 个“条件”:循环条件和筛选条件。
请注意甄别:循环条件必须能够遍历每一个数据,如果你写的循环条件会漏掉某些数据,或者循环没有能够正常运行,请检查是不是把筛选条件也写在循环条件里了。
查找算法,主要有 2 个步骤:
1、使用循环访问数组中的每一个元素
2、在循环体中设置筛选条件,打印符合条件的元素
使用 foreach 的语法:
需要解释一下 ④ ,如上面的示例代码,迭代变量 x 只能用于读取数组 num 中的值,但是不能给数组元素赋值,如果尝试给 x 赋值,则会有下面的错误提示:
二维数组的声明和访问
二维数组,就是以数组作为元素的数组。挺拗口的,看看它跟一维数组的对比:
左边的 a 是一维数组,数组中包含 4 个 int 型变量:a[0]、a[1]、a[2]、a[3] 。
右边的 b 是二维数组,数组中包含 2 个 int 型一维数组:b[0]、b[1] 。而 b[0] 和 b[1] 中又分别包含 3 个 int 型变量:b[0,0]、b[0,1]、b[0,2]、b[1,0]、b[1,1]、b[1,2] 。
总结一下,二维数组这样声明:
int[,] arr = new int[2,3]; //包含2个一维数组,每个一维数组包含3个变量,总共2*3=6个数组元素
二维数组元素这样赋值和打印:
arr[1,0] = 28; //二维数组元素有2个索引,都是从0开始,以arr数组为例,元素索引从[0,0]到[1,2]
Console.Write( arr[1,0] );