C# 運算子

來源:互聯網
上載者:User

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

||

條件運算

?:

賦值

=

+=

-=

*=

/=

%=

&=

|=

^=

<<=

>>=

??

算術溢位

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

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

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

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

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

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

請參見

任務

“運算子多載”樣本

參考

可重載運算子(C# 編程指南)
C# 關鍵字

概念

C# 編程指南

其他資源

C# 參考
Visual C#

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.