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 |
等式 |
== != |
逻辑与 |
& |
逻辑异或 |
^ |
逻辑或 |
| |
条件与 |
&& |
条件或 |
|| |
条件 |
? : |
赋值 |
= *= /= %= += -= <<=
>>= &= ^= |= |
同优先级运算顺序
运算符 |
结合规律 |
= ( ? : ) |
右结合 |
其他 |
左结合 |