C# 語法學習_Lesson 3

C# 語法學習_Lesson 3

運算式

「運算式」是由「運算元」和「運算子」建構而成。 運算式的運算子會指出要將哪些運算套用到運算元。 運算子範例包括 +、-、*、/ 及 new。 運算元範例包括常值、欄位、區域變數及運算式。

當運算式包含多個運算子時,運算子的「優先順序」會控制評估個別運算子的順序。 例如,運算式 x + y * z 會評估為 x + (y * z),因為 * 運算子的優先順序高於 + 運算子。

當兩個優先順序相同的運算子之間有運算元時,運算子的「關聯性」會控制執行運算的順序:
除了指派和 null 聯合運算子之外,所有二元運算子都是左關聯的,這表示作業是由左至右執行。 例如,x + y + z 會判斷值為 (x + y) + z。

指派運算子、null 表達式(?? 和 ??= 運算子),而條件運算子 ?: 是靠右關聯的,這表示作業是由右至左執行。 例如,x = y = z 會判斷值為 x = (y = z)。

您可以使用括弧來控制優先順序和關聯性。 例如,x + y * z 會先將 y 乘以 z,然後再將結果加到 x,而 (x + y) * z 則會先將 x 與 y 相加,然後再將結果乘以 z。

大部分的運算子都可以「多載」。 運算子多載可允許針對一個運算元屬於 (或兩個運算元都屬於) 使用者定義之類別或結構型別的運算式,指定使用者定義的運算子實作。

C# 提供數個運算子,用於執行算術、邏輯、位元和移位作業以及相等和順序比較。