運算子
所有運算子都定義為 static methods,它們不是 virtual,它們不是繼承的。
運算子優先權
所有運算子都具有特定的優先順序,具體取決於運算子所屬的組(同一組的運算子具有相同的優先順序)。這意味著某些運算子將被應用於其以下是按優先順序排序的組(包含其各自的運算子)列表(最高的第一個):
-
主要運算子
a.b- 會員訪問許可權。a?.b- 空條件成員訪問。->- 指標解除引用與成員訪問相結合。f(x)- 函式呼叫。a[x]- 索引器。a?[x]- 空條件索引器。x++- 字尾增量。x--- Postfix 減量。new- 型別例項化。default(T)- 返回T型別的預設初始化值。typeof- 返回運算元的Type物件。checked- 啟用數字溢位檢查。unchecked- 禁用數字溢位檢查。delegate- 宣告並返回一個委託例項。sizeof- 返回型別運算元的大小(以位元組為單位)。
-
一元運算子
+x- 返回x。-x- 數字否定。!x- 邏輯否定。~x- 按位補碼/宣告解構函式。++x- 字首增量。--x- 字首遞減。(T)x- 型轉換。await- 等待一個人。&x- 返回x的地址(指標)。*x- 指標解除引用。
-
乘法運算子
x * y- 乘法。x / y- 分部。x % y- 模數。
-
加法運算子
x + y- 加法。x – y- 減法。
-
按位移位運算子
x << y- 左移位。x >> y- 右移位。
-
關係/型別測試運算子
x < y- 不到。x > y- 大於。x <= y- 小於或等於。x >= y- 大於或等於。is- 型別相容性。as- 型別轉換。
-
相等運算子
x == y- 相等。x != y- 不相等。
-
邏輯 AND 運算子
x & y- 邏輯/按位 AND。
-
邏輯 XOR 運算子
x ^ y- 邏輯/按位異或。
-
邏輯 OR 運算子
x | y- 邏輯/按位 OR。
-
條件 AND 運算子
x && y- 短路邏輯 AND。
-
條件 OR 運算子
x || y- 短路邏輯或。
-
空結合運算子
x ?? y- 如果x不為 null,則返回x; 否則,返回y。
-
條件運算子
x ? y : z- 如果x為真,則評估/返回y; 否則,評估z。