运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符,分类如下:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他运算符
算术运算符
+ |
- |
* |
/ |
% |
++ |
-- |
加 |
减 |
乘 |
除 |
模 |
加一 |
减一 |
关系运算符
== |
!= |
> |
< |
>= |
<= |
等于 |
不等 |
大于 |
小于 |
大于等于 |
小于等于 |
逻辑运算符
位运算符
& |
| |
^ |
~ |
<< |
>> |
与 |
或 |
异或 |
取反 |
左移 |
右移 |
赋值运算符
= |
+= |
-= |
*= |
/= |
%= |
<<= |
>>= |
&= |
^= |
|= |
简单赋值 |
加且赋值 |
减且赋值 |
乘且赋值 |
除且赋值 |
模且赋值 |
左移且赋值 |
右移且赋值 |
位与且赋值 |
位异或且赋值 |
位或赋值 |
其他运算符
运算符 |
描述 |
实例 |
sizeof() |
返回数据类型的大小。 |
sizeof(int) |
typeof() |
返回 class 的类型。 |
typeof(StreamReader); |
& |
返回变量的地址。 |
&a; 将得到变量的实际地址。 |
* |
变量的指针。 |
*a; 将指向一个变量。 |
? : |
条件表达式 |
如果条件为真 ? 则为 X : 否则为 Y |
is |
判断对象是否为某一类型。 |
If( Ford is Car) // 检查 Ford 是否是 Car 类的一个对象。 |
as |
强制转换,即使转换失败也不会抛出异常。 |
Object obj = new StringReader("Hello"); StringReader r = obj as StringReader; |
运算符优先级
类别 |
运算符 |
结合性 |
后缀 |
() [] -> . ++ - - |
从左到右 |
一元 |
+ - ! ~ ++ - - (type)* & sizeof |
从右到左 |
乘除 |
* / % |
从左到右 |
加减 |
+ - |
从左到右 |
移位 |
<< >> |
从左到右 |
关系 |
< <= > >= |
从左到右 |
相等 |
== != |
从左到右 |
位与 AND |
& |
从左到右 |
位异或 XOR |
^ |
从左到右 |
位或 OR |
| |
从左到右 |
逻辑与 AND |
&& |
从左到右 |
逻辑或 OR |
|| |
从左到右 |
条件 |
?: |
从右到左 |
赋值 |
= += -= *= /= %=>>= <<= &= ^= |= |
从右到左 |
逗号 |
, |
从左到右 |
参考文档:http://www.runoob.com/csharp/csharp-operators.html