C#中提供了丰富的运算符,可以帮助我们完成相关的运算和操作。
C#的运算符分类和形式如表1所示。
表1 运算符
类别 |
运算符 |
说明 |
表达式 |
算术 运算符 |
+ |
执行加法运算(如果两个操作数是字符串,则该运算符用作字符串连接运算符,将一个字符串添加到另一个字符串的末尾) |
操作数1 + 操作数2 |
- |
执行减法运算 |
操作数1 — 操作数2 |
|
* |
执行乘法运算 |
操作数1 * 操作数2 |
|
/ |
执行除法运算 |
操作数1 / 操作数2 |
|
% |
获得进行除法运算后的余数 |
操作数1 % 操作数2 |
|
++ |
将操作数加 1 |
操作数++ 或++操作数 |
|
-- |
将操作数减 1 |
操作数—或—操作数 |
|
~ |
将一个数按位取反 |
~操作数 |
|
比较 运算符 |
> |
检查一个数是否大于另一个数 |
操作数1 > 操作数2 |
< |
检查一个数是否小于另一个数 |
操作数1 < 操作数2 |
|
>= |
检查一个数是否大于或等于另一个数 |
操作数1 >= 操作数2 |
|
<= |
检查一个数是否小于或等于另一个数 |
操作数1 <= 操作数2 |
|
== |
检查两个值是否相等 |
操作数1 == 操作数2 |
|
!= |
检查两个值是否不相等 |
操作数1 != 操作数2 |
|
条件 运算符 |
?: |
检查给出的第一个表达式 expression 是否为真。如果为真,则计算 operand1,否则计算 operand2。这是唯一带有三个操作数的运算符 |
表达式? 操作数1:操作数2 |
赋值 |
= |
给变量赋值 |
操作数1 = 操作数2 |
逻辑 运算符 |
&& |
对两个表达式执行逻辑“与”运算 |
操作数1 && 操作数2 |
|| |
对两个表达式执行逻辑“或”运算 |
操作数1 || 操作数2 |
|
! |
对两个表达式执行逻辑“非”运算 |
! 操作数 |
|
强制类型 |
( ) |
将操作数强制转换为给定的数据类型 |
(数据类型) 操作数 |
成员 |
. |
用于访问数据结构的成员 |
数据结构.成员 |
快捷运算符 |
+= |
运算结果 = 操作数1 + 操作数2 |
|
-= |
运算结果 = 操作数1 - 操作数2 |
||
*= |
运算结果 = 操作数1 * 操作数2 |
||
/= |
运算结果 = 操作数1 / 操作数2 |
||
%= |
运算结果 = 操作数1%操作数2 |
举例:
已知:
注意:表达式i++和++i的区别。
在实际运算中,往往有多个运算符参与运算,这时要把握一个问题:优先级与结合性问题。在C#中,优先级和结合性如下表2所示:
表2 优先级和结合性
优先级 |
说明 |
运算符 |
结合性 |
1 |
括号 |
( ) |
从左到右 |
2 |
自加/自减运算符 |
++/-- |
从右到左 |
3 |
乘法运算符 |
* |
从左到右 |
4 |
加法运算符 |
+ |
从左到右 |
5 |
小于 |
< |
从左到右 |
6 |
等于 |
= |
从左到右 |
7 |
逻辑与 |
&& |
从左到右 |
8 |
逻辑或 |
|| |
从左到右 |
9 |
赋值运算符和快捷运算符 |
= += *= |
从右到左 |
新闻热点
疑难解答