共用方式為


C# 運算子

C# 提供了許多的運算子 (也就是在運算式中用來指定要執行運算的符號)。在整數型別上的運算,例如 ==、!=、<、>、<=、>=、binary +、binary -、^、&。|~、 ++、 -- 及 sizeof() 通常都在列舉型別上被允許。此外,許多運算子可由使用者多載來改變意義,以便套用到使用者定義型別上。

下表會依照優先順序的分組方式列出 C# 運算子,每個群組內的運算子都有相同的優先順序。

運算子分類

運算子

主要

x.y

f(x)

a[x]

x++

x--

new

typeof

已核取

unchecked

default(T)

Delegate - 委派

sizeof

->

一元

+x

-x

! x

~x

++x

--x

(T)x

等候

&x

*x

乘法類 (Multiplicative)

x、y

x 和 y

x % y

加法類 (Additive)

x + y

x-y

Shift

x << y

x >> y

關係和型別測試

x < y

x > y

x <= y

x >= y

as

相等

x == y

x! = y

邏輯 AND

x & y

邏輯 XOR

x、y

邏輯 OR

x|y

條件式 AND

x && y

條件式 OR

x||y

Null 聯合

x ??y

條件式

?:

指派和 Lambda 運算式

x = y

x += y

x - y =

x *= y

x/= y

x %= y

x &= y

x|= y

x ^= y

x <<= y

x >>= y

=>

算術溢位

算術運算子 (+-*/) 會產生相關數字型別 (Numeric Type) 可能值範圍以外的結果。您應參閱有關特定運算子的章節以取得詳細資料,但一般而言:

  • 整數算術溢位可能會擲回 OverflowException,或是捨棄結果的最大顯著性位元。除數為零的整數除法一定會擲回 DivideByZeroException。

  • 浮點算術溢位或者是除數為零時,並不會產生例外狀況。因為浮點數型別是根據 IEEE 754 標準所制訂,所以已經提供無限大 (Infinity) 及非數值 (NaN,Not A Number) 狀況的表示方法。

  • 十進位算術溢位一定會擲回 OverflowException。除數為零的十進位除法一定會擲回 DivideByZeroException

整數溢位發生時,會導致怎樣的情形要根據執行內容為 checked 或 unchecked 而定。在 checked 的內容中會擲回 OverflowException。在 unchecked 的內容中,結果的最大顯著位元會被捨棄,並繼續執行。所以 C# 給予您處理溢位或忽略溢位的選擇。

除了算術運算子,整數類資料型別 (Integral Type) 間的轉換也可能造成溢位 (例如,將 long 轉換為 int),而且也與 checked 或 unchecked 執行有關。然而,位元 (Bitwise) 運算子和移位 (Shift) 運算子一定不會造成溢位。

請參閱

參考

可多載的運算子 (C# 程式設計手冊)

C# 關鍵字

概念

C# 程式設計手冊

其他資源

C# 參考

Visual C#