当前位置:首页 > Windows程序 > 正文

C#表达式和语句

2021-03-28 Windows程序

  表达式由操作数 (operand) 和运算符 (operator) 构成。表达式的运算符指示对操作数适用什么样的运算。运算符的示例包括+、-、*、/ 和 new。操作数的示例包括文本、字段、局部变量和表达式。

  当表达式包含多个运算符时,运算符的优先级 (precedence) 控制各运算符的计算顺序。例如,表达式 x + y * z 按 x + (y * z) 计算,因为 * 运算符的优先级高于 + 运算符。

  大多数运算符都可以重载 (overload)。运算符重载允许指定用户定义的运算符实现来执行运算,这些运算的操作数中至少有一个,甚至所有操作数都属于用户定义的类类型或结构类型。

下表总结了 C# 运算符,并按优先级从高到低的顺序列出各运算符类别。同一类别中的运算符优先级相同。

类别

 

表达式

 

说明

 

基本

 

x.m

 

成员访问

 

x(...)

 

方法和委托调用

 

x[...]

 

数组和索引器访问

 

x++

 

后增量

 

x--

 

后减量

 

new T(...)

 

对象和委托创建

 

new T(...){...}

 

使用初始值设定项创建对象

 

new {...}

 

匿名对象初始值设定项

 

new T[...]

 

数组创建

 

typeof(T)

 

获取 T 的 System.Type 对象

 

checked(x)

 

在 checked 上下文中计算表达式

 

unchecked(x)

 

在 unchecked 上下文中计算表达式

 

default(T)

 

获取类型 T 的默认值

 

delegate {...}

 

匿名函数(匿名方法)

 

一元

 

+x

 

恒等

 

-x

 

求相反数

 

!x

 

逻辑求反

 

~x

 

按位求反

 

++x

 

前增量

 

--x

 

前减量

 

(T)x

 

将 x 显式转换为类型 T

 

await x

 

异步等待 x 完成

 

乘法

 

x * y

 

乘法

 

x / y

 

除法

 

x % y

 

求余

 

加减

 

x + y

 

加法、字符串串联、委托组合

 

x – y

 

减法、委托移除

 

移位

 

x << y

 

左移

 

x >> y

 

右移

 

关系和类型检测

 

x < y

 

小于

 

x > y

 

大于

 

x <= y

 

小于或等于

 

x >= y

 

大于或等于

 

x is T

 

如果 x 为 T,则返回 true,,否则返回 false

 

x as T

 

返回转换为类型 T 的 x,如果 x 不是 T 则返回 null

 

相等

 

x == y

 

等于

 

x != y

 

不等于

 

逻辑“与”

 

x & y

 

整型按位 AND,布尔逻辑 AND

 

逻辑 XOR

 

x ^ y

 

整型按位 XOR,布尔逻辑 XOR

 

逻辑 OR

 

x | y

 

整型按位 OR,布尔逻辑 OR

 

条件 AND

 

x && y

 

仅当 x 为 true 时,才对 y 求值

 

条件 OR

 

x || y

 

仅当 x 为 false 时,才对 y 求值

 

null 合并

 

X ?? y

 

如果 x 为 null,则计算结果为 y,否则计算结果为 x

 

条件

 

x ? y : z

 

如果 x 为 true,则对 y 求值;如果 x 为 false,则对 z 求值

 

赋值或匿名函数

 

x = y

 

赋值

 

x op= y

 

复合赋值;支持的运算符有:

*=   /=   %=   +=   -=   <<=   >>=   &=   ^=   |=

 

(T x) => y

 

匿名函数(lambda 表达式)

 

  语句

  程序的操作是使用语句 (statement) 来表示的。C# 支持几种不同的语句,其中许多以嵌入语句的形式定义。

  block 用于在只允许使用单个语句的上下文中编写多条语句。块由位于一对大括号 { 和 } 之间的语句列表组成。

  声明语句 (declaration statement) 用于声明局部变量和常量。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68781.html