zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#语句、运算符和表达式

c# 语句 表达式 运算符
2023-09-14 09:14:09 时间

目录

一、语句

二、运算符

2.1 算术运算符

2.2 关系和类型测试运算符

2.3 逻辑运算符

2.4 赋值运算

​2.5 字符串运算符

2.6 位运算符

2.7 条件运算符

2.8 null相关运算符 

2.9 其它运算符

2.10 运算符优先级

三、表达式


一、语句

语句(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)表达式从左到右在同一个基准上书写,无高低、大小区分