运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。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 | || | 从左到右 |
| 条件 | ?: | 从右到左 |
| 赋值 | = += -= *= /= %=>>= <<= &= ^= |= | 从右到左 |
| 逗号 | , | 从左到右 |








网友评论