C#中using用法及操作實踐
對C#中using用法和as操作符,平時在命名空間或者代碼開頭都會使用到。但是這么一個常見的C#中using用法,大家了解不一定很多。
其實這兩個操作符號是很重要也很有用的2個操作符號。下面我們一起來看他們的使用方法。
1、using
按照MSDN的解釋
using 語句定義一個范圍,在此范圍的末尾將處理對象。
C#中using用法舉例:
- class TestUsing:IDisposable
- {
- public void Dispose()
- {
- Console.WriteLine("Dispose");
- }
- public void Method()
- {
- Console.WriteLine("Do a method");
- }
- }
調(diào)用這個類:
- using(TestUsing tu=new TestUsing())
- {
- tu.Method();
- }
可以看到先后輸出了Do a method和Dispose。
備注:實例化的對象必須實現(xiàn) System.IDisposable 接口
2、as
MSDN這么說:
as 運算符用于執(zhí)行可兼容類型之間的轉(zhuǎn)換。
as 運算符類似于類型轉(zhuǎn)換,所不同的是,當(dāng)轉(zhuǎn)換失敗時,as 運算符將產(chǎn)生空,而不是引發(fā)異常。在形式上,這種形式的表達式:
expression as type
等效于:
expression is type ? (type)expression : (type)null
只是 expression 只被計算一次。
請注意,as 運算符只執(zhí)行引用轉(zhuǎn)換和裝箱轉(zhuǎn)換。as 運算符無法執(zhí)行其他轉(zhuǎn)換,如用戶定義的轉(zhuǎn)換,這類轉(zhuǎn)換應(yīng)使用 cast 表達式來代替其執(zhí)行。
舉例:
- object [] arr=new object[2];
- arr[0]=123;
- arr[1]="test";
- foreach(object o in arr)
- {
- string s=(string)o;
- Console.WriteLine(s);
- }
這樣的代碼在轉(zhuǎn)換類型失敗的時候引發(fā)異常,代碼修改成:
- object [] arr=new object[2];
- arr[0]=123;
- arr[1]="test";
- for(int i=0;i {
- string s=arr[i] as string;
- if(s!=null)Console.WriteLine(i+":"+s);
- }
可以看到輸出了1:test,雖然arr[0]處轉(zhuǎn)換失敗但是沒有引發(fā)異常而是返回了null
備注:as必須和引用類型一起使用(int等值類型不能使用)
【編輯推薦】