C# 運算符

C# 提供大量運算符,這些運算符是指定在表達式中執行哪些操作的符號。通常允許對枚舉進行整型運算,例如 ==!=<><=>=binary +binary -^&|~++--sizeof()。此外,很多運算符可被用戶重載,由此在應用到用戶定義的類型時更改這些運算符的含義。 和

下表列出了按優先級順序分組的 C# 運算符。每個組中的運算符具有相同的優先級。


運算符類別 運算符

基本

x.y

f(x)

a[x]

x++

x--

new

typeof

checked

unchecked

->

一元

+

-

!

~

++x

--x

(T)x

True

False

&

sizeof

乘法

*

/

%

加法

+

-

變換

<<

>>

關係和類型檢測

<

>

<=

>=

is

as

相等

==

!=

邏輯“與”

&

邏輯 XOR

^

邏輯“或”

|

條件 AND

&&

條件 OR

||

條件運算

?:

賦值

=

+=

-=

*=

/=

%=

&=

|=

^=

<<=

>>=

??

<script type="text/Javascript"> var ExpCollDivStr = ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl606010322,"; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl60img,"; </script>算術溢出

算術運算符(+-*/)產生的結果可能會超出涉及的數值類型可能值的範圍。詳細信息應參考有關特定運算符的章節,而一般情況下:

  • 整數算術溢出或者引發 OverflowException,或者丟棄結果的最高有效位。整數被零除總是引發 DivideByZeroException

  • 浮點算術溢出或被零除從不引發異常,因爲浮點類型基於 IEEE 754,因此可以表示無窮和 NaN(不是數字)。

  • 小數算術溢出總是引發 OverflowException。小數被零除總是引發 DivideByZeroException

當發生整數溢出時,產生的結果取決於執行上下文,該上下文可爲 checked 或 unchecked。在 checked 上下文中引發 OverflowException。在未選中的上下文中,放棄結果的最高有效位並繼續執行。因此,C# 使您有機會選擇處理或忽略溢出。

除算術運算符以外,整型之間的強制轉換也會導致溢出(例如,將 long 強制轉換爲 int)並受 checked 或 unchecked 執行的限制。然而,按位運算符和移位運算符永遠不會導致溢出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章