运算符
所有运算符都定义为 static methods,它们不是 virtual,它们不是继承的。
运算符优先权
所有运算符都具有特定的优先级,具体取决于运算符所属的组(同一组的运算符具有相同的优先级)。这意味着某些运算符将被应用于其以下是按优先级排序的组(包含其各自的运算符)列表(最高的第一个):
-
主要运算符
a.b- 会员访问权限。a?.b- 空条件成员访问。->- 指针解除引用与成员访问相结合。f(x)- 函数调用。a[x]- 索引器。a?[x]- 空条件索引器。x++- 后缀增量。x--- Postfix 减量。new- 类型实例化。default(T)- 返回T类型的默认初始化值。typeof- 返回操作数的Type对象。checked- 启用数字溢出检查。unchecked- 禁用数字溢出检查。delegate- 声明并返回一个委托实例。sizeof- 返回类型操作数的大小(以字节为单位)。
-
一元运算符
+x- 返回x。-x- 数字否定。!x- 逻辑否定。~x- 按位补码/声明析构函数。++x- 前缀增量。--x- 前缀递减。(T)x- 型转换。await- 等待一个人。&x- 返回x的地址(指针)。*x- 指针解除引用。
-
乘法运算符
x * y- 乘法。x / y- 分部。x % y- 模数。
-
加法运算符
x + y- 加法。x – y- 减法。
-
按位移位运算符
x << y- 左移位。x >> y- 右移位。
-
关系/类型测试运算符
x < y- 不到。x > y- 大于。x <= y- 小于或等于。x >= y- 大于或等于。is- 类型兼容性。as- 类型转换。
-
相等运算符
x == y- 相等。x != y- 不相等。
-
逻辑 AND 运算符
x & y- 逻辑/按位 AND。
-
逻辑 XOR 运算符
x ^ y- 逻辑/按位异或。
-
逻辑 OR 运算符
x | y- 逻辑/按位 OR。
-
条件 AND 运算符
x && y- 短路逻辑 AND。
-
条件 OR 运算符
x || y- 短路逻辑或。
-
空结合运算符
x ?? y- 如果x不为 null,则返回x; 否则,返回y。
-
条件运算符
x ? y : z- 如果x为真,则评估/返回y; 否则,评估z。