|
其實(shí)這2個(gè)操作符在小處非常有用。
1、using
按照msdn的解釋
using 語(yǔ)句定義一個(gè)范圍,在此范圍的末尾將處理對(duì)象。
舉例:
class TestUsing:IDisposable
{
public void Dispose()
{
Console.WriteLine("Dispose");
}
public void Method()
{
Console.WriteLine("Do a method");
}
}
調(diào)用這個(gè)類(lèi):
using(TestUsing tu=new TestUsing())
{
tu.Method();
}
可以看到先后輸出了Do a method和Dispose。
備注:實(shí)例化的對(duì)象必須實(shí)現(xiàn) System.IDisposable 接口
2、as
msdn這么說(shuō):
as 運(yùn)算符用于執(zhí)行可兼容類(lèi)型之間的轉(zhuǎn)換。
as 運(yùn)算符類(lèi)似于類(lèi)型轉(zhuǎn)換,所不同的是,當(dāng)轉(zhuǎn)換失敗時(shí),as 運(yùn)算符將產(chǎn)生空,而不是引發(fā)異常。在形式上,這種形式的表達(dá)式:
expression as type
等效于:
expression is type ? (type)expression : (type)null
只是 expression 只被計(jì)算一次。
請(qǐng)注意,as 運(yùn)算符只執(zhí)行引用轉(zhuǎn)換和裝箱轉(zhuǎn)換。as 運(yùn)算符無(wú)法執(zhí)行其他轉(zhuǎn)換,如用戶定義的轉(zhuǎn)換,這類(lèi)轉(zhuǎn)換應(yīng)使用 cast 表達(dá)式來(lái)代替其執(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)換類(lèi)型失敗的時(shí)候引發(fā)異常,代碼修改成:
object [] arr=new object[2];
arr[0]=123;
arr[1]="test";
for(int i=0;i<arr.Length;i++)
{
string s=arr[i] as string;
if(s!=null)Console.WriteLine(i+":"+s);
} 可以看到輸出了1:test,雖然arr[0]處轉(zhuǎn)換失敗但是沒(méi)有引發(fā)異常而是返回了null
備注:as必須和引用類(lèi)型一起使用(int等值類(lèi)型不能使用)
AspNet技術(shù):不能忽略c#中的using和as操作符的用處,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。