程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C#各種運算符總結

C#各種運算符總結

編輯:C#基礎知識

C# 提供了許多運算符,這些運算符是指定要在表達式中執行哪些操作(數學、索引、函數調用等等)的符號。在應用於用戶定義類型之前,你可以對許多運算符進行重載以更改其含義。

針對整型類型的運算(如 ==!=<>&|)通常可用於枚舉 (enum) 類型。

以下章節按最高優先級到最低優先級的順序列示 C# 運算符。各章節內運算符的優先級相同。

主要運算符    

以下是具有最高優先級的運算符。請注意,你可以單擊運算符轉到包含示例的詳細頁面。

x.y - 成員訪問。

x?.y - null 條件成員訪問。如果左邊操作數為 null,則返回 null。

f(x) - 函數調用。

a[x] - 聚合對象索引。

a?[x] - null 條件索引。如果左邊操作數為 null,則返回 null。

x++ - 後綴遞增。先返回 x 值,然後用加 1(通常加整數 1)後的 x 值更新存儲位置。

x-- - 後綴遞減。先返回 x 值,然後用減 1(通常減整數 1)後的 x 值更新存儲位置。

New - 類型實例化。

Typeof - 返回表示操作數的 System.Type 對象。

Checked - 對整數運算啟用溢出檢查。

Unchecked - 對整數運算禁用溢出檢查。這是默認的編譯器行為。

default(T) - 返回類型 T 的默認初始化值,T 為引用類型時返回 null,T 為數值類型時返回零,T 為結構類型時返回填充為零/null 的成員。

Delegate - 聲明並返回一個委托實例。

Sizeof - 返回類型操作數的大小(以字節為單位)。

-> - 取消指針引用與成員訪問相結合。

一元運算符    

這些運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊運算符轉到包含示例的詳細頁面。

+x - 返回 x 值。

-x - 數值求反。

!x - 邏輯求反。

~x - 按位求補。

++x - 前綴遞增。先用加 1(通常加整數 1)後的 x 值更新存儲位置,然後返回 x 值。

--x - 前綴遞減。先用減 1(通常減整數 1)後的 x 值更新存儲位置,然後返回 x 值。

(T)x - 類型轉換。

Await - 等待 Task。

&x - 地址。

*x - 取消引用。

乘法運算符    

這些運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊運算符轉到包含示例的詳細頁面。

x * y - 乘法。

x / y - 除法。如果操作數均為整數,則結果為整數,捨去小數(例如,-7 / 2 is -3)。

x % y - 取模。如果操作數均為整數,則返回 x 除以 y 後的余數。如果 q = x / y 且 r = x % y,則 x = q * y + r。

加法運算符    

這些運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊運算符轉到包含示例的詳細頁面。

x + y - 加法。

x – y - 減法。

移位運算符    

這些運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊運算符轉到包含示例的詳細頁面。

x << y - 向左移位,右邊移出的空位補零。

x >> y - 向右移位。如果左操作數是 int 或 long,則左位數補符號位。如果左操作數是 uint 或 ulong,則左位數補零。

關系和類型測試運算符    

這些運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊運算符轉到包含示例的詳細頁面。

x < y - 小於(如果 x 小於 y,則為 true)。

x > y - 大於(如果 x 大於 y,則為 true)。

x <= y - 小於等於。

x >= y - 大於等於。

Is - 類型兼容性。如果求值後的左操作數可以轉換為右操作數中指定的類型(靜態類型),則返回 true。

As - 類型轉換。返回左操作數並轉換為右操作數中指定的類型(靜態類型),但 as 返回 null,其中 (T)x 會引發異常。

相等運算符    

這些運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊運算符轉到包含示例的詳細頁面。

x == y - 相等。默認情況下,對於 string 以外的引用類型,此運算符返回引用相等(標識測試)。但是,類型可以重載 ==,因此,如果你想測試標識,最好對 object 使用 ReferenceEquals 方法。

x != y - 不相等。請參閱有關 == 的注釋。如果某個類型重載 ==,則它必須重載 !=

邏輯 AND 運算符    

此運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊該運算符轉到包含示例的詳細頁面。

x & y - 邏輯或位 AND。與整數類型一起使用,並且通常允許 enum 類型。

邏輯 XOR 運算符    

此運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊該運算符轉到包含示例的詳細頁面。

x ^ y - 邏輯或位 XOR。通常可以將此運算符與整數類型和 enum 類型一起使用。

邏輯 OR 運算符    

此運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊該運算符轉到包含示例的詳細頁面。

x | y - 邏輯或位 OR。與整數類型一起使用,並且通常允許 enum 類型。

條件 AND 運算符    

此運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊該運算符轉到包含示例的詳細頁面。

x && y - 邏輯 AND。如果第一個操作數為 false,則 C# 不對第二個操作數求值。

條件 OR 運算符    

此運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊該運算符轉到包含示例的詳細頁面。

x || y - 邏輯 OR。如果第一個操作數為 true,則 C# 不對第二個操作數求值。

Null 合並運算符    

此運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊該運算符轉到包含示例的詳細頁面。

x ?? y - 如果不為 null,則返回 x;否則返回 y。

條件運算符    

此運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊該運算符轉到包含示例的詳細頁面。

t ? x : y - 如果測試 t 為 true,則求值並返回 x;否則,求值並返回 y。

賦值和 Lambda 運算符    

這些運算符的優先級比下一章節高,比上一章節低。請注意,你可以單擊運算符轉到包含示例的詳細頁面。

x = y - 賦值。

x += y - 遞增。 x 值加 y 值,結果存儲在 x 中,並返回新值。如果 x 指定 event,則 y 必須是 C# 作為事件處理程序添加的相應函數。

x -= y - 遞減。 x 值減 y 值,結果存儲在 x 中,並返回新值。如果 x 指定 event,則 y 必須是 C# 作為事件處理程序刪除的相應函數

x *= y - 乘法賦值。 x 值乘以 y 值,結果存儲在 x 中,並返回新值。

x /= y - 除法賦值。 x 值除以 y 值,結果存儲在 x 中,並返回新值。

x %= y - 取模賦值。 x 值除以 y 值,余數存儲在 x 中,並返回新值。

x &= y - AND 賦值。 y 值和 x 值相與,結果存儲在 x 中,並返回新值。

x |= y - OR 賦值。 y 值和 x 值相或,結果存儲在 x 中,並返回新值。

x ^= y - XOR 賦值。 y 值和 x 值相異或,結果存儲在 x 中,並返回新值。

x <<= y - 左移賦值。將 x 值向左移動 y 位,結果存儲在 x 中,並返回新值。

x >>= y - 右移賦值。將 x 值向右移動 y 位,結果存儲在 x 中,並返回新值。

=> - lambda 聲明。

算術溢出    

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

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

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

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

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved