在C#中,运算符的优先级是根据它们的优先级顺序来确定的。当一个表达式中有多个运算符时,优先级较高的运算符会先被计算,然后再计算优先级较低的运算符。如果两个运算符的优先级相同,那么它们将按照从左到右的顺序进行计算。
以下是C#中运算符的优先级顺序(从高到低):
++
--
+
-
!
~
(T)
[]
.
?.
?[]
()
^
*
/
%
+
-
<<
>>
<
>
<=
>=
is
as
==
!=
&
^
|
&&
||
??
?:
=>
->
= += -= *= /= %= &= |= ^= <<= >>= ??=
new
typeof
default
checked
unchecked
sizeof
+x -x !x ~x ++x --x (T)x
await
x[i]
x.y
x?.y
x?[i]
f(x)
x++ x--
x * y
x / y
x % y
x + y
x - y
x << y
x >> y
x < y
x > y
x <= y
x >= y
x is T
x as T
x == y
x != y
x & y
x ^ y
x | y
x && y
x || y
x ?? y
x ? y : z
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
x ??= y
请注意,这个列表并不完整,因为它只包含了一些常用的运算符。你可以查阅C#官方文档以获取更详细的运算符优先级列表。
在编写代码时,如果需要明确指定运算顺序,可以使用括号()
来改变运算符的优先级。例如,a + b * c
和 (a + b) * c
的结果是不同的,因为乘法运算符的优先级高于加法运算符。通过使用括号,我们可以确保先进行加法运算,然后再进行乘法运算。