C# 包含一元運算符、二元運算符和一個三元運算符。下表概述了這些運算符,並將它們按優先級以從高到低的順序列出:
章節 類別 運算符
第 7.5 節 基本 x.y f(x) a[x] x++ x-- new
typeof checked unchecked
第 7.6 節 一元 + - ! ~ ++x --x (T)x
第 7.7 節 乘法 * / %
第 7.7 節 加法 + -
第 7.8 節 移位 << >>
第 7.9 節 關系和類型檢測 < > <= >= is as
第 7.9 節 相等 == !=
第 7.10 節 邏輯 AND &
第 7.10 節 邏輯 XOR ^
第 7.10 節 邏輯 OR |
第 7.11 節 條件 AND &&
第 7.11 節 條件 OR ||
第 7.12 節 條件 ?:
第 7.13 節 賦值 = *= /= %= += -= <<= >>= &= ^= |=
當表達式包含多個運算符時,運算符的優先級控制各運算符的計算順序。例如,表達式 x + y * z 按 x + (y * z) 計算,因為 * 運算符具有的優先級比 + 運算符高。
當操作數出現在具有相同優先級的兩個運算符之間時,運算符的順序關聯性控制運算的執行順序:
除了賦值運算符外,所有的二元運算符都向左順序關聯,意思是從左向右執行運算。例如,x + y + z 按 (x + y) + z 計算。
賦值運算符和條件運算符 (?:) 向右順序關聯,意思是從右向左執行運算。例如,x = y = z 按 x = (y = z) 計算。
優先級和順序關聯性都可以用括號控制。例如,x + y * z 先將 y 乘以 z 然後將結果與 x 相加,而 (x + y) * z 先將 x 與 y 相加,然後再將結果乘以 z。