摘要:[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 -> 強制轉換
三小俠 小弟獻醜,歡迎指教