9.[] 運算符 方括號 ([]) 用于數組、索引器和屬性,也可用于指針。 type [] array [ indexexpr ] 其中: type 類型。 array 數組。 indexexpr 索引表達式 10.() 運算符 除了用于指定表達式中運算符的順序外,圓括號還用于指定轉換(類型轉換) ( type ) expr 其中:type expr 要轉換為的類型名。 expr 一個表達式。轉換顯式調用從 expr 類型到 type 類型的轉換運算符;如果未定義這樣的轉換運算符,則該轉換將失敗。 12.自增自減操作符 自增操作符++對變量的值加1,而自減操作符--對變量的值減1。此操作符有前后綴之分。對于前綴操作符,遵循的原則是“先增減,后使用”,而后綴操作符則正好相反,是“先使用,后增減” using System; class MikeCat { public static void Main() { double x,y; x=1.5; Console.WriteLine(++x);//自增后等于2.5 y=1.5; Console.WriteLine(y++);//先顯示1.5后自增 Console.WriteLine(y);//自增后等于2.5 } } 13.as 運算符 as 運算符用于執行可兼容類型之間的轉換。as 運算符用在以下形式的表達式中:expression as type 其中: expression 引用類型的表達式。type 引用類型。 as 運算符類似于類型轉換,所不同的是,當轉換失敗時,as 運算符將產生空,而不是引發異常。在形式上,這種形式的表達式: expression as type 等效于: expression is type ? (type)expression : (type)null 只是 expression 只被計算一次。 請注意,as 運算符只執行引用轉換和裝箱轉換。as 運算符無法執行其他轉換,如用戶定義的轉換,這類轉換應使用 cast 表達式來代替其執行。 using System; class MyClass1 { } class MyClass2 { } public class IsTest { public static void Main() { object [] myObjects = new object[6]; myObjects[0] = new MyClass1(); myObjects[1] = new MyClass2(); myObjects[2] = "hello"; myObjects[3] = 123; myObjects[4] = 123.4; myObjects[5] = null; for (int i=0; i<myObjects.Length; ++i) { string s = myObjects[i] as string; Console.Write ("{0}:", i); if (s != null) Console.WriteLine ( "'" + s + "'" ); else Console.WriteLine ( "not a string" ); } } } 輸出 0:not a string 1:not a string 2:'hello' 3:not a string 4:not a string 5:not a string 14.new 操作符 new操作符用于創建一個新的類型實例,有三種形式: A:對象創建表達式,用于創建一個類類型或值類型的實例。 B:數組創建表達式,用于創建一個數組類型實例。 C:委托創建表達式,用于創建一個新的委托類型實例。 15.typeof操作符 typeof操作符用于獲得系統原型對象的類型。 using System; class MikeCat { public static void Main() { Console.WriteLine(typeof(int)); Console.WriteLine(typeof(System.Int32)); } }//結果:System.Int32 System.Int32 //表明int和System.Int32是同一個類型 c#中用GetType()方法獲得一個表達式在運行時的類型 using System; class MikeCat { public static void Main() { int r=3; Console.WriteLine("圓的面積等于{0}",r*r*Math.PI); Console.WriteLine("類型是{0}",(r*r*Math.PI).GetType()); } }//圓的面積等于28.2743338823081 //類型是System.Double 16.sizeof操作符 sizeof操作符獲得一個值類型的字節大小 using System; class MikeCat { unsafe public static void SizesOf() { Console.WriteLine("short的大小是{0}",sizeof(short)); Console.WriteLine("int的大小是{0}",sizeof(int)); Console.WriteLine("long的大小是{0}",sizeof(long)); } public static void Main() { SizesOf(); } }//short 的大小是2;int的大小是4;long的大小是8; 17.checked和unchecked操作符 在進行整型算術運算或從一種整型顯示轉換到另外一種整型時,有可能產生溢出。 檢查這種溢出c#中有兩種處理方式: 第一:在編譯時設置溢出校驗選項(溢出校驗默認是禁用的): csc /checked test.cs //這個我們在前面有所介紹 第二:使用checked和unchecked操作符來確定是否進行溢出校驗。即使編譯時禁用溢出校驗,計算時也同樣引發異常。 using System; class MikeCat { public static void Main(string[] args) { long factorial=1; long num=Int64.Parse(args[0]); for(long cur=1;cur<=num;cur++) { checked{factorial*=cur;} } Console.WriteLine("{0}的階乘是{1}",num,factorial); } }//test.exe 3 3的階乘是6 unchecked操作符與checked操作符正好相反,即使溢出,被unchecked操作符所括住的代碼也不會引發異常。 各個操作符的優先級我就不在這里多說了。主要是手累。呵呵。仍然和以前c++的優先級相似。詳細可參看MSDN。感謝大家關注本教程,歡迎訪問老
|