[C#] 善用運算子 as 或 is 來轉型

  • 5249
  • 0
  • 2009-11-24

摘要:[C#] 善用運算子 as 或 is 來轉型

[原文出處]:http://www.dotblogs.com.tw/larrynung/archive/2009/09/30/10834.aspx#10670

 

雖然也常使用這兩個運算子,可是看了這邊文章,才意識到自己沒有去探討一些重要的細節,這邊分享給大家。

 

as 運算子只能用於參考類型,不能應用於值類型。

object o = Text.GetObject(); 
MyType myType = o as MyType;
 if(myType != null) {
  //轉型成功 
}
else{ 
//轉型失敗 
} 

 

搭配 is 運算子達到更好的效果‧

object o = Factory.GetObject();
 MyType t = null;
 if (o is MyType)
      t = o as MyType; 

 

有時候也會直接使用強制轉型搭配 try-catch ,後來發現這是最最下策,所以,最好循著以下順序‧

as -> is -> 強制轉換

三小俠  小弟獻醜,歡迎指教