讀【157個完美化C#的建議】一書的理解筆記 - 003
重點: C# 型別轉換盡量別用 顯示轉型(強制),在愈複雜的情境下,用as 會比較優
流程說明 |
1. as用法 |
2. is用法 |
3. 顯示轉型缺點 |
4.結論 |
首先我們先定義範例用的型別 dog 和 cat
/// <summary>
/// 定義貓的型別
/// </summary>
public class cat
{
}
/// <summary>
/// 定義狗的型別
/// </summary>
public class dog
{
}
程式碼實作
object a = new cat();
dog b = new dog();
1. as用法
as 也是將型別轉換型別,以下是對變數a 利用as 語法轉為 dog型別
結果: temp變數得到 null 因為a的原始型別是cat
var temp = a as dog;
2. is用法
is 是判斷型別是否為指定的型別類別,是的話為true ,否則為false
bool isKindDog = a is dog;// 結果:false
bool isKindCat = a is cat;// 結果:true
3. 顯示轉型缺點
顯示轉型就是如 (int)variable ,將變數轉為() 內的型別
以下程式碼會有嚴重的問題,將會出現Exception,造成程式錯誤,必須用Try Catch避免程式異常
Try Catch 基本上一定會消耗記憶體資源,包覆愈多層,效能耗費就愈多
var temp3 = (dog)a;
4.結論
盡量用as 取代 顯示轉型。is 語法是涉及必須使用基底型別轉換的時候才搭配使用
github連結(Vs2015) : 點我下載