不要忽略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| 夜夜添狠狠添高潮出水| 丰满岳乱妇一区二区三区|