表達式(expression)由操作數(operand)和運算符(operator)構成。表達式的運算符標明在操作數上運用了哪種操作。運算符的例子包括+、-、*、/和new。操作數的例子包括字面值、字段、局部變量和表達式。
當表達式包括多個運算符時,運算符的優先級(precedence)控制各個運算符執行的順序。例如,表達式x+y*z將以x+(y*z)的形式計算,原因就是運算符“*”的優先級高於運算符“+”。
大多數運算符能夠被重載(overload)。運算符的重載允許用戶自定義運算符實現,用於為用戶自定義的類或者結構類型指定操作方式。
表1.4總結了C#的運算符,運算符的分類排列是按其優先級從高到低的次序。同一分類的運算符具有相同的優先級。
表1.4 C#的運算符
分 類
表 達 式
描 述
基本
x.m
成員訪問
x(…)
方法和委托調用
x[…]
數組和索引器訪問
x++
後增量(post-increment)
x--
後減量(post-decrement)
new T(…)
對象和委托創建
new T[…]
數組創建
typeof(T)
獲得T類型的System.Type對象
checked(x)
在檢查的上下文計算表達式
unchecked(x)
在未檢查的上下文計算表達式
一元
+x
表達式的值相同
-x
求相反數
!x
邏輯求反
~x
按位求反
++x
前增量(pre-increment)
--x
前減量(pre-decrement)
(T)x
顯式地將x的類型轉換為類型T
乘除法
x*y
乘
x/y
除
x%y
求余
加減
x+y
加,字符串合並,委托組合
x-y
減,委托移除
移位
x<<y
左移
x>>y
右移
關系和類型檢測
x<y
小於
x>y
大於
x<=y
小於或者等於
x>=y
大於或者等於
x is T
如果x屬於T類型,返回true;否則,返回false
x as T
返回轉換為類型T的x;如果x不是T,就返回null譯注2
相等
x==y
等於
x!=y
不等於
邏輯與
x&y
整型按位與,布爾型邏輯與
邏輯異或
x^y
整型按位異或,布爾型邏輯異或
邏輯或
x|y
整型按位或,布爾型邏輯或
條件與
x&&y
如果x為true,則計算y
條件或
x||y
如果x為false,則計算y
條件
x?y:z
如果x為true,則計算y;如果x為false,則計算z
賦值
x=y
賦值
x op=y
復合賦值;支持的運算符有:
*= /= %= += -= <<= >>= &= ^= |=