在C#程序中經常出現類型的強制轉換,如:
double d=10.5;
int i=(int)d;
這樣得到i的值爲10。但是這麼轉換在一些情況下會出現轉換錯誤,如:
class C1{};
class C2:C1 {};
C1 c11=new C1();
C2 c22=(C1)C1;
這樣轉換就會失敗,需要進行處理,如try catch;
try
{
C2 c22=(C1)c11;
}
catch(Exception e)
{
console.writelinr(e.message);
}
但是如果使用AS,那麼強制轉換爲
C2 c22=c11 as C2;
相比較而言,as無疑是最合適,他與try catch 相比較來說,具有安全性和高效性。(轉換失敗不會產生新的對象,會直接賦值爲空)
但是as必須用於引用類型和可爲空類型。