运算符按接受操作数个数分为单元运算符, 二元运算符, 三元运算符。按照用途可分为:算术运算符, 比较运算符,布尔运算符,位运算符,相等运算符等。一般来说, 运算符只对内置基本类型有效, 可以重载运算符, 来实现对自定义类型或对象的支持。一个表达式使用到多个运算符时, 表达式计算顺序遵循优先级规则, 但小括号括起来的拥有优先计算的权利。
csharp 支持的运算符总览
x.y、f(x)、a[i]、x?.y、x?[y]、x++、x—、x!、new、typeof、checked、unchecked、default、nameof、delegate、sizeof、stackalloc、x→y、 +x、-x、x、~x、++x、—x、^x、(T)x、await、&&x、*x、true 和 false、 x..y、switch、with、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、x & y、x ^ y、x | y、 x && y、x || y、x ?? y、c ? t : f、x = y、x += y、x -= y、x *= y、x /= y、x %= y、x &= y、x |= y、x ^= y、x <⇐ y、x >>= y、x ??= y、⇒
算术运算符
包括基本的加减乘除, 取余等
比较运算符
大于, 小于, 等于, 大于等于, 小于等于等
布尔运算符
与或非
位运算符
左右移位, 按位取反, 位与或, 位异或
优先级
运算符 | 类别 |
---|---|
x.y、f(x)、a[i]、x?.y、x?[y]、x++、x—、x!、new、typeof、checked、unchecked、default、nameof、delegate、sizeof、stackalloc、x→y | 主要 |
+x、-x、x、~x、++x、—x、^x、(T)x、await、&&x、*x、true 和 false | 一元 |
x..y | 范围 |
switch、with | switch 和 with 表达式 |
x * y、x / y、x % y | 乘法 |
x + y、x – y | 加法 |
x << y、x >> y | Shift |
x < y、x > y、x ⇐ y、x >= y、is、as | 关系和类型测试 |
x == y、x != y | 相等 |
x & y | 布尔逻辑 AND 或按位逻辑 AND |
x ^ y | 布尔逻辑 XOR 或按位逻辑 XOR |
x| y | 布尔逻辑 OR 或按位逻辑 OR |
x || y | 条件“或” |
c ? t : f | 条件运算符 |
x = y、x += y、x -= y、x *= y、x /= y、x %= y、x &= y、x |= y、x ^= y、x <⇐ y、x >>= y、x ??= y、⇒ | 赋值和 lambda 声明 |
特殊运算符
特殊操作符