不要忽略C#中的using和as操作符
2006/12/15 23:26:19
1、using
按照msdn的解釋:
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<arr.Length;i++)
{
string s=arr[i] as string;
if(s!=null)Console.WriteLine(i+":"+s);
}
可以看到輸出了1:test,雖然arr[0]處轉(zhuǎn)換失敗但是沒有引發(fā)異常而是返回了null
備注:as必須和引用類型一起使用(int等值類型不能使用)。
返回列表
返回首頁
主站蜘蛛池模板:
久久免费动漫品精老司机|
女大学生沙龙室3|
亚洲国产欧美国产综合一区|
直接观看黄网站免费视频|
国产一区小可爱原卡哇伊|
日本另类z0zx|
成成人看片在线|
久久精品国产免费一区|
欧美国产在线视频|
四月婷婷七月婷婷综合|
8av国产精品爽爽ⅴa在线观看|
小说专区图片专区|
中日韩美中文字幕|
欧美老妇bbbwwbbww|
国产一级大片免费看|
欧美污视频网站|
国产精品无码翘臀在线观看|
中文字幕理论电影理论片|
欧美色欧美亚洲高清在线视频|
公交车上驯服冷艳麻麻|
免费在线观看h片|
女扒开尿口让男桶30分钟|
中文无码字幕中文有码字幕|
日韩亚洲专区在线电影|
亚洲电影在线看|
琪琪色在线播放|
免费观看日本污污ww网站一区|
黑人巨大精品欧美一区二区|
女人张腿让男人捅|
久久人人爽人人爽人人av东京热|
最近国语视频在线观看免费播放|
亚洲国产精品一区二区三区久久
|
在线播放免费播放av片|
久久久精品免费视频|
正在播放高级会所丰满女技师|
免费v片在线观看视频网站|
精品区卡一卡2卡三免费|
国产天堂在线观看|
色老太婆bbw|
夜夜添狠狠添高潮出水|
丰满岳乱妇一区二区三区|