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 操作符

生成实例。

class A{}; A a = new A;

typeof 操作符

获得对象的原型的类型。

typeof(int)

检测操作符

用于整型算术运算时控制当前环境下的溢出检查。

当进行 ++, --, -, +, -, *, / 等运算时如果值超出范围,如果使用 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
等式 ==  !=
逻辑与 &
逻辑异或 ^
逻辑或 |
条件与 &&
条件或 ||
条件 ? :
赋值 =  *=  /=  %=  +=  -=  <<=  >>=  &=  ^=  |=

同优先级运算顺序

运算符 结合规律
=   ( ? : ) 右结合
其他 左结合