共用方式為


C# 運算子

更新: 2008 年 7 月

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

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

運算子分類

運算子

主要

x.y

f(x)

a[x]

x++

x--

new

typeof

checked

unchecked

->

一元

+

-

!

~

++x

--x

(T)x

true

false

&

sizeof

乘法類 (Multiplicative)

*

/

%

加法類 (Additive)

+

-

移位

<<

>>

關係和型別測試

<

>

<=

>=

is

as

相等

==

!=

邏輯 AND

&

邏輯 XOR

^

邏輯 OR

|

條件式 AND

&&

條件式 OR

||

條件式

?:

指派

=

+=

-=

*=

/=

%=

&=

|=

^=

<<=

>>=

Null 聯合

??

Lambda

=> 運算子 (C# 參考)

算術溢位

算術運算子 (+-*/) 會產生相關數字型別 (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#

變更記錄

日期

記錄

原因

2008 年 7 月

依照客戶建議,將 ?? 運算子移出指派類別。

內容 Bug 修正。