C#學習基礎------表達式

表達式

一,操作符
1,操作符的分類,在c#中有三种類型的操作符:
一元操作符:一元操作符作用於一個操作數,一元操作符又包括前綴操作符和後綴操作符.
二元操作符:二元操作符作用於兩個操作數,使用時在操作數中間插入操作符.
三元操作符:C#中權有一個三元操作符"?:",三元操作符作用於三個操作數.
下面的列子:
int n=5,y=10,z;
x++;            //後綴一元操作符
-x;             //前綴一元操作符
z=x+y;          //二元操作符
y=(x>10?0:1);   //三元操作符
2,操作符的優先級(如下圖)

當一個操作數出現在兩個有相同優先級的操作符之間時,操作符按照出現的順序由左至右擴行.
賦值操作符和條件操作符(?:)按照右接合的原則,即操作按照從右向左的順序執行,如:x=y=z按照x=(y=z)進行求值.
枚舉類型加法
E operator +(E x,U y);
E operator +(U x,E y);
此處E是枚舉類型,U是E的基類型.該運算等價於(E)((U)x+(U)y)
下面是一個例子:
using System;
enum Weekday{Sumday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
class test
{
  public static void Main()
  {
    Weekday day1=Weekday.Sunday;
    Weekday day2=Weekday.Saturday;
    Weekday day3=day1+6;
    Console.WriteLine(day1);
    Console.WriteLine(day2);
    Console.WriteLine(day3);
  }
}
輸出的結果是:0,6,6
字符串加法
對於object與string類型也可以進行加法運算,並且返回值總是string類型,這時加法操作符的原型是:
string operator +(string x,string y)
string operator +(string x,object y)
string operator +(object x,string y)
代表合並
加法操作還可以作用於delegate類型的變量,這時我們稱之為合並.原型為:
D operator +(D x,D y);
其中D是一個deleagte類型.
式子中如果兩個操作數是同一delegate類型D時,則加法操作符執行代表合並運算.如果第一個操作數為null,那麼結果是第二個操作數的值.反之,如果第二個操作數為null則結果是第一個操作數的值.
除法運算的返回值的類型與精度最高的操作數類型相同.
is操作符
is操作符被用於動態地檢查運行時對像類型是否和給定的類型兼容.運算"e is T"的結果,其中e是一個表達式,T是一個類型,返回值是一個布爾值.它表示e是否能通過引用轉換,裝箱,拆箱轉換,成功地轉換於T類型.
as操作符
as操作符用於通過引用轉換或裝箱轉換將一個值顯式地轉換成指定的引用類型.不像顯式類型轉換,as不會產生任何異常.
三元操作符(?:)
也稱為條件操作符
對條件表達式b?x:y先計算條件b,然後進行判斷,如果b的值為true,計算x的值,否則計算y.
new操作符
new操作符用於創建一個新的類型實例,它有三种形式:
對像創建表達式,用於創建一個類類型或值類型的實例.
數組創建表達式,用於創建一個數組類型實例.
代表創建表達式,用於創建一個新的代表類型實例.
typeof操作符
用於獲得系統原型對像類型.
checked和unchecked操作符
用於整型算術運算時控制當前環境中的溢出檢查.

 

posted @ 2007-10-29 16:29  Athrun  阅读(385)  评论(0编辑  收藏  举报