一、语句
语句(statement)是C# 程序的过程构造块,用于声明变量和常量、创建对象、变量赋值、调用方法、控制分支、创建循环等。语句通常以分号终止。由花括号({ 和 })括起来的一系列语句构成代码块(block)。
声明语句(declaration statement)用于声明局部变量和常量;
表达式语句(expression statement)用于对表达式求值;
选择语句(selection statement)这一组语句有 if 和 switch 语句;
迭代语句(iteration statement)用于重复执行嵌入语句。这一组语句有 while、do、for 和 foreach 语句;
跳转语句(jump statement)这一组语句有 break、continue、goto、return、和throw语句等;
try...catch 语句用于捕获在块的执行期间发生的异常,try...finally 语句用于指定终止代码,不管是否发生异常,该代码都始终要执行;
checked 语句和 unchecked 语句用于控制整型算术运算和转换的溢出检查上下文
lock 语句用于获取某个给定对象的互斥锁;
using 语句用于获得一个资源,执行一个语句,然后释放该资源;
二、运算符
C#运算符(operator)是术语或符号,用于在表达式中对一个或多个称为操作数的进行计算并返回结果值。
◆一元运算符,例如增量运算符(++)或new。
◆二元运算符,例如算术运算符+、-、*、/。
◆三元运算符,条件运算符“?:”是C#中唯一的三元运算符;
当表达式包含多个运算符时,运算符的优先级控制各运算符的计算顺序; 通过运算符重载(overload)可以为用户自定义的类型定义新的运算符。
2.1 算术运算符
注意:
(1)算术运算符两边的操作应是数值型。若是字符型,则自动转换成字符所对应的ASCII码值后再进行运算
(2)增量运算符(++、--)可以出现在操作数之前或之后
2.2 关系和类型测试运算符
注意:
关系运算符的优先级相同。
对于string类型,关系运算符比较字符串的值,即按字符的ASCII码值从左到右一一比较:首先比较两个字符串的第一个字符,其ASCII码值大的字符串大,若第一个字符相等,则继续比较第二个字符,依此类推,直至出现不同的字符为止。
对于string以外的引用类型,如果两个操作数引用同一个对象,则==返回True。如果两个操作数引用不同的对象,则!=返回True。
int 和System.Int32是相同的数据类型
2.3 逻辑运算符
~、&、|、^、!、&&、||
2.4 赋值运算
(1)简单赋值语句:变量名 = 表达式;
(2)复合赋值语句
2.5 字符串运算符
C#提供的字符串运算符只有一个:“+”,用于串联(拼接)两个字符串。
当其中的一个操作数是字符串类型或两个操作数都是字符串类型时,二元+运算符执行字符串串联。
在字符串串联运算中,如果它的一个操作数为null,则用空字符串来替换此操作数。
否则,任何非字符串参数都通过调用从object类型继承的虚ToString方法,转换为它的字符串表示形式。
如果ToString返回null,则替换成空字符串。
2.6 位运算符
2.7 条件运算符
逻辑表达式? 表达式1: 表达式2;
首先计算“逻辑表达式”的值,如果为true,则运算结果为“表达式1”的值,否则运算结果为“表达式2”的值
计算a和b两个数中较大的数,并将其赋给变量maxnum中,语句为: maxnum = (a > b)? a : b;
2.8 null相关运算符
访问对象成员时,如果对象为空,则会产生异常。使用下面两个操作符,可简化判空操作;如果操作数为空,则返回空。
1. null合并运算符“??”
如操作数值为空,则返回缺省值。
例 表达式??缺省值
2. null条件成员访问运算符“?.”和“?[]”
【例】int? length=Cusomers?.Length; /*如为空,则返回空;否则返回其长度 */
【例】Customer first =customers?[0]; /*如为空,则返回空;否则返回其第一个元素 */
2.9 其它运算符
1. sizeof 用于获取值类型的字节大小,仅适用于值类型,而不适用于引用类型。sizeof运算符只能在不安全代码块中使用。
2. typeof 用于获取类型的System.Type对象,例如:System.Type type = typeof(int); 若要获取表达式的运行时类型,可以使用.NET Framework方法GetType()
2.10 运算符优先级
表达式中的运算符按照运算符优先级(precedence)的特定顺序和结合性规则计算
三、表达式
1.表达式的组成
表达式由操作数(变量、常量、函数)、运算符和圆括号按一定规则组成。
2.表达式的书写规则
(1)乘号不能省略,例如,a 乘以 b 应写为 a*b。
(2)括号必须成对出现,而且只能使用圆括号;圆括号可以嵌套使用。
(3)表达式从左到右在同一个基准上书写,无高低、大小区分