C# 运算符

2025年4月3日 | 阅读12分钟

在 C# 中,**运算符**是用于对操作数(变量或值)执行运算的特殊符号。运算符是任何编程语言中的重要概念。运算符可以接受一个或多个操作数来执行运算并产生结果。它可以执行多种运算,例如算术、值赋值、位运算和逻辑计算。

简单的 C# 运算符示例

让我们用一个简单的例子来说明 C# 中的运算符。

示例

编译并运行

输出

The value of a + b is 30.

运算符类型

C# 中有几种类型的运算符可以执行不同类型的运算。重要的 C# 运算符如下:

  1. 算术运算符
  2. 关系运算符
  3. 逻辑运算符
  4. 按位运算符
  5. 赋值运算符
  6. 一元运算符
  7. 三元运算符或条件运算符
  8. 空合并运算符
  9. 运算符的结合性和优先级

在这里,我们将一一讨论这些运算符及其类型和示例。

1. 算术运算符

在 C# 中,算术运算符主要用于对操作数执行基本的数学运算(包括加法、减法、乘法、除法等)。

运算符名称符号描述
加法+它通常用于将两个数字相加。
减法-它通常用于从另一个数中减去一个数。
乘法*它通常用于将两个数字相乘。
除法/它通常用于将一个数除以另一个数。
取模%它返回除法的余数。

C# 算术运算符示例

让我们通过一个例子来说明 C# 中的算术运算符。

示例

编译并运行

输出

The value of a + b is 13  
The value of a - b is 7  
The value of a * b is 30  
The value of a / b is 3  
The value of a % b is 1  

2. 关系(比较)运算符

在 C# 中,关系运算符主要用于比较两个值并返回布尔值(true 或 false)。

运算符名称符号描述
等于==它检查两个操作数是否相等。如果两个操作数相等,则返回 true;否则返回 false。
不等于!=它检查两个操作数的值是否相等。如果不相等,则条件为 true。如果值相等,则条件为 false。
大于>它用于比较两个值,如果第一个操作数大于第二个操作数,则返回 true。如果第一个操作数不大于第二个操作数,则返回 false。
小于<它也用于比较两个值,如果第一个操作数小于第二个操作数,则返回 true。否则,返回 false。
大于等于>=如果第一个操作数大于或等于第二个操作数,则返回 true。否则,返回 false。
小于等于<=如果第一个操作数小于或等于第二个操作数,则返回 true。否则,返回 false。

C# 关系运算符示例

让我们通过一个例子来说明 C# 中的关系运算符。

示例

编译并运行

输出

The value of a == b is False  
The value of a != b is True  
The value of a > b is False  
The value of a < b is True  
The value of a >= b is False  
The value of a <= b is True  

3. 逻辑运算符

在 C# 中,逻辑运算符用于组合多个条件并返回布尔结果。

运算符名称符号描述
逻辑与&&仅当两个操作数都非零时,它才返回 true。否则,如果给定的一个或两个条件为 false,它将返回 false。
逻辑或||仅当其中一个条件为 true 时,它才返回 true。如果两个条件都为 false,它才返回 false。
逻辑非!它反转条件的布尔值。如果条件为 true,则返回 false。如果操作数的值为 false,则返回 true。

C# 逻辑运算符示例

让我们通过一个例子来说明 C# 中的逻辑运算符。

示例

编译并运行

输出

The value of x && y is False  
The value of x || y is True  
The value of !x is False  

4. 位运算符

在 C# 中,位运算符在二进制级别上操作以修改数字的位。

运算符名称符号描述
按位与&如果此运算符存在于两个操作数中,它会将位复制到结果中。
按位或|如果它存在于任何一个操作数中,它会将位复制到计算结果中。
按位异或^如果它存在于任何一个操作数中,它会将位复制到计算结果中。
按位补码~它是单目运算符,具有翻转位的效果。它将二进制值 1 翻转为 0,将 0 翻转为 1。
左移<<它将数字中的所有位向左移动指定的位数,并在空位处填充 0。它将数字乘以 2n
右移>>它将数字的所有位向右移动定义的位数。对于正数,空位用 0 填充。对于负数,行为取决于实现。

C# 位运算符示例

让我们通过一个例子来说明 C# 中的位运算符。

示例

编译并运行

输出

The value of a & b is 10
The value of a | b is 15
The value of a ^ b is 5
The value of ~a is -11
The value of a << b is 20
The value of a >> b is 5

5. 赋值运算符

在 C# 中,赋值运算符主要用于为变量赋值并同时执行运算。最常用的运算符是赋值运算符(=)。它允许我们修改变量中存储的值。

运算符名称符号描述
赋值=它通常用于将右操作数的值赋给左操作数。
加法并赋值+=它允许我们将右操作数加到左操作数上,并将结果值赋给左操作数。
减法并赋值-=它允许我们将右操作数从左操作数中减去,并将结果值赋给左操作数。
乘法并赋值*=它允许我们将左操作数乘以右操作数,并将结果数赋给左操作数。
除法并赋值/=它允许我们将左操作数除以右操作数,并将结果值赋给左操作数。
取模并赋值%=它允许我们计算左操作数除以右操作数的余数,并将结果数赋给左操作数。

C# 赋值运算符示例

让我们通过一个例子来说明 C# 中的赋值运算符。

示例

编译并运行

输出

The value of a is 10
The value of a+=b is 16
The value of a-=b is 10
The value of a*=b is 60
The value of a/=b is 10
The value of a%=b is 4

6. 单目运算符

在 C# 中,单目运算符对单个操作数执行运算。

运算符名称符号描述
一元加+它表示正值。它通常是可选的,因为数字默认是正的。
一元减-它会改变变量的值,将正数变为负数,反之亦然。
递增++它使变量的值增加 1。
**前缀 (++x):**它先增加值,然后在程序中使用。
**后缀 (x++):**它先使用值,然后增加它。
递减--它使变量的值减少 1。
**前缀 (--x):**它先减小值,然后在程序中使用。
**后缀 (x--):**它先使用值,然后减小它。

C# 单目运算符示例

让我们通过一个例子来说明 C# 中的单目运算符。

示例

编译并运行

输出

The value of +a is 10
The value of -a is -10
The value of a after a++ is 10
The value of a after a-- is 10

7. 三元或条件运算符

在 C# 中,三元运算符是 if-else 语句的替代方案。它主要对三个操作数执行运算。它是一种基于条件的运算符。

语法

它具有以下语法:

这里发生了两个条件:

  • 如果给定条件为 true,则执行 Expression_a 并提供适当的结果。
  • 如果给定条件为 false,则执行 Expression_b 并提供适当的结果。

C# 三元或条件运算符示例

让我们通过一个例子来说明 C# 中的三元运算符和条件运算符。

示例

编译并运行

输出

The minimum value is 15 

8. 空合并运算符

在 C# 中,空合并运算符在处理 null 值时提供默认值。

运算符名称符号描述

空合并

??它检查左侧操作数是否为 null。如果不为 null,则返回左操作数。如果为 null,则返回右操作数。它允许我们提供默认值。

空合并赋值

??=仅当左操作数为 null 时,它才将右操作数赋给左操作数。

C# 空合并运算符示例

让我们通过一个例子来说明 C# 中的空合并运算符。

示例

编译并运行

输出

The result is 100  
The value of x is 50  

9. 运算符的结合性和优先级

在 C# 中,运算符优先级是定义表达式中不同运算符求值顺序的规则。运算符优先级决定了不同运算符的求值顺序,而结合性描述了相同优先级的运算符之间的顺序,告诉是应该从左到右还是从右到左求值。

1. 运算符优先级

具有较高优先级的运算符首先进行求值。例如,在表达式中

示例

输出

20

在这里,乘法 (*) 的优先级高于加法 (+),因此首先计算 5 * 2,然后加上 10。

2. 运算符结合性

如果运算符处于相同的优先级级别,它们的结合性决定了求值顺序。

  • **从左到右结合性:**像 +、-、*、/、%、&&、||、== 等运算符,从左到右求值。
  • **从右到左结合性:**像 =(赋值)、+=、-=、??= 和三元运算符(?:)等运算符,从右到左求值。

运算符优先级和结合性示例

示例

输出

8

由于 * 的优先级高于 - 和 +,所以它首先被求值。

从右到左结合性示例

示例

输出

20

在这里,首先计算 b = 20,然后是 a = 20,最后是 result = 20。


C# 运算符多项选择题 (MCQ)

1. 以下 C# 代码的输出是什么?

  1. 14
  2. 15
  3. 16
  4. 13

答案:(B) 15

2. 以下 C# 代码的输出是什么?

  1. true
  2. False
  3. 编译错误
  4. 运行时错误

答案:(A) True

3. 以下代码的输出是什么?

  1. null
  2. 50
  3. 0
  4. 编译错误

答案:(B) 50

4. 关于 C# 中的 ??= 运算符,以下哪个陈述是正确的?

  1. 仅当左操作数为 null 时,它才将右操作数赋给左操作数。
  2. 它总是将右操作数赋给左操作数。
  3. 它检查两个操作数是否相等。
  4. 如果左操作数为 null,它将抛出异常。

答案:(A)

5. 以下按位运算的输出是什么?

  1. 1
  2. 3
  3. 5
  4. 7

答案:(A) 1


下一主题C# 关键字