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