在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
的結果是不同的,因為乘法運算符的優先級高于加法運算符。通過使用括號,我們可以確保先進行加法運算,然后再進行乘法運算。