熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

c#中的using和as操作符的詳細講解

2013-11-13 12:18:14  來源: .NET編程 

  這個操作符在小處非常有用 

  using

  using 語句定義一個范圍在此范圍的末尾將處理對象

  舉例

  class TestUsing:IDisposable 
  { 
   public void Dispose() 
   { 
    ConsoleWriteLine(Dispose); 
   } 
   public void Method() 
   { 
    ConsoleWriteLine(Do a method); 
   } 
  }

  調用這個類

  using(TestUsing tu=new TestUsing()) 
  { 
   tuMethod(); 
  }

  可以看到先後輸出了Do a method和Dispose

  備注實例化的對象必須實現 SystemIDisposable 接口

  as

  as 運算符用於執行可兼容類型之間的轉換

  as 運算符類似於類型轉換所不同的是當轉換失敗時as 運算符將產生空而不是引發異常在形式上這種形式的表達式

  expression as type

  等效於

  expression is type ? (type)expression : (type)null 只是 expression 只被計算一次

  請注意as 運算符只執行引用轉換和裝箱轉換as 運算符無法執行其他轉換如用戶定義的轉換這類轉換應使用 cast 表達式來代替其執行

  舉例

  object [] arr=new object[];
  arr[]=;
  arr[]=test;
  foreach(object o in arr) 
  { 
   string s=(string)o; 
   ConsoleWriteLine(s); 
  }

  這樣的代碼在轉換類型失敗的時候引發異常代碼修改成

  object [] arr=new object[];
  arr[]=;
  arr[]=test;
  for(int i=;i<arrLength;i++) 
  { 
   string s=arr[i] as string; 
   if(s!=null)ConsoleWriteLine(i+:+s); 
  }
  
  可以看到輸出了:test雖然arr[]處轉換失敗但是沒有引發異常而是返回了null

  備注as必須和引用類型一起使用(int等值類型不能使用) 


From:http://tw.wingwit.com/Article/program/net/201311/15616.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.