在C#中,不同的运算符有不同的优先级,这决定了在表达式中它们的计算顺序。了解运算符的优先级有助于避免在编写复杂表达式时出现意想不到的结果。
以下是C#中一些常见运算符的优先级(从高到低):
1. 括号运算符(最高优先级)
()
例如(a + b)
2. 一元运算符
++
(前缀递增),--
(前缀递减)+
,-
(正负号)!
(逻辑非)~
(按位取反)
3. 乘法与除法
*
(乘法),/
(除法),%
(取余)
4. 加法与减法
+
(加法),-
(减法)
5. 移位运算符
<<
(左移),>>
(右移)
6. 关系运算符
<
,>
,<=
,>=
7. 等值运算符
==
(等于),!=
(不等于)
8. 按位与运算符
&
9. 按位异或运算符
^
10. 按位或运算符
|
11. 逻辑与运算符
&&
12. 逻辑或运算符
||
13. 三元条件运算符
?:
例如condition ? trueResult : falseResult
14. 赋值运算符(最低优先级)
=
(赋值),+=
,-=
,*=
,/=
,%=
,&=
,|=
,^=
,<<=
,>>=
示例:
int a = 5;
int b = 10;
int result = a + b * 2; // 由于乘法优先级高于加法,result为25,而不是30
说明:
在上述示例中,b * 2
先被计算,结果为 20
,然后再与 a
相加,最终 result
为 25
。
要改变运算的顺序,可以使用括号来显式指定优先级。例如:
int result = (a + b) * 2; // 先计算a + b, 然后结果乘以2,result为30
掌握运算符优先级有助于在编写代码时避免逻辑错误,并且在需要时可以使用括号来明确表达式的计算顺序