C# 操作符
算术操作符
| 符号 |
意义 |
示例 |
| + |
加法 |
|
| - |
减法 |
|
| * |
乘法 |
|
| / |
除法 |
5 / 2 = 2 |
| % |
求余 |
5 % 1.5 == 0.5 |
枚举操作符
字符串操作符
可用于 Object 与 string ,结果为 string。
还可用于 delegate 。
代表操作符
赋值运算符
| 符号 |
意义 |
示例 |
| = |
|
|
| += |
|
|
| -= |
|
|
| *= |
|
|
| /= |
|
|
| %= |
|
|
| &= |
|
|
| |= |
|
|
| ^= |
|
|
| <<= |
|
|
| >>= |
|
|
关系运算符
两个 string 都为 null 时,被认为是相等的。
如果有一个操作数为 NAN(空),则除“!=”外所有操作符结果为
false。
x!=y 等价于 !(x==y), 除非有一个操作数为 NaN。
两个操作数都不为 NaN 时,大小顺序如下:
| -∞
< -max < ... < -min < -0.0 == +0.0 < +min < ... <
+max < +∞ |
| 符号 |
意义 |
示例 |
| == |
等于 |
可用于 string, object |
| != |
不等于 |
可用于 string, object |
| < |
小于 |
|
| > |
大小 |
|
| <= |
小于等于 |
|
| >= |
大于等于 |
|
| is |
兼容 |
expr is Class |
| as |
引用/装箱转换 |
不产生异常,代之以返回 null |
逻辑操作符
位运算符
| 符号 |
意义 |
示例 |
| & |
与 |
|
| | |
或 |
|
| ^ |
异或 |
|
| ~ |
取补 |
|
| << |
左移 |
|
| >> |
右移 |
|
三元运算符
| condition ? value_for_true : value_for_false |
| 符号 |
意义 |
| condition |
条件表达式 |
| value_for_true |
条件为真时返回该值 |
| value_for_false |
条件为假时返回该值 |
自增减运算符
| 符号 |
意义 |
示例 |
| ++ |
自增 |
++i,i++ |
| -- |
自减 |
--i,i-- |
new 操作符
生成实例。
typeof 操作符
获得对象的原型的类型。
检测操作符
用于整型算术运算时控制当前环境下的溢出检查。
当进行 ++, --, -, +, -, *, /
等运算时如果值超出范围,如果使用 checked
则会抛出异常,如果使用 unchecked 则仅保留低位,高位抛弃。
未使用下列操作符时,根据编译器环境自动判断。
| 符号 |
意义 |
备注 |
| checked(表达式) |
检测异常 |
|
| unchecked(表达式) |
忽略异常 |
|
| (表达式) |
根据编译设置决定 |
|
优先级(从高到低)
| 类型 |
操作符 |
| 初级 |
(x) x.y f(x) a[x] x++ x-- new
type of sizeof checked unchecked |
| 一元 |
+ - ! ~ ++x --x (T)x |
| 乘、除 |
* / % |
| 加、减 |
+ - |
| 移位 |
<< >> |
| 关系 |
< > <= >= is as |
| 等式 |
== != |
| 逻辑与 |
& |
| 逻辑异或 |
^ |
| 逻辑或 |
| |
| 条件与 |
&& |
| 条件或 |
|| |
| 条件 |
? : |
| 赋值 |
= *= /= %= += -= <<=
>>= &= ^= |= |
同优先级运算顺序
| 运算符 |
结合规律 |
| = ( ? : ) |
右结合 |
| 其他 |
左结合 |