C# 程式設計/型別轉換
外觀
< C# 程式設計
型別轉換是將值從一種型別轉換為另一種型別的方式。主要存在兩種型別的轉換,隱式轉換和顯式轉換。當值型別轉換為物件或引用型別時,會發生裝箱。
隱式轉換是編譯器自動執行值轉換的方式。當且僅當不會發生資訊丟失時才會發生這種情況。例如,將資料從較小的整數型別轉換為較大的型別,或將派生型別轉換為基型別。
int iValue = 5000;
double dDistance = iValue ;
public class Animal { […] };
public class Mammal : Animal { […] };
public class Cat : Mammal
{
[…]
}
Mammal mammal = new Cat();
此外,此示例也可以工作。
int num = 9513458219;
long bigNum = num;
這種型別的轉換必須由開發人員指定,因為可能會丟失資料。
double dPi = 3.1415926535;
int iValue = (int)dPi; // iValue = 3
int iValue_2 = Convert.ToInt32(dPi); // iValue_2 = 3
double dPi = 3.1415926535;
object oPi = (object) dPi;
對於引用型別,除非已知物件永遠不會引發異常,否則不建議使用直接轉換。一種常見的最佳實踐是使用 as 關鍵字。
///<summary>
/// Function attempts to cast object to cat.
/// If object cannot be cast to cat, returns null
///</summary>
public Cat ConvertToCat(object obj)
{
Cat c = obj as Cat;
return c;
}
!重要:僅當您在轉換後進行空值檢查並處理異常情況時,使用“as”關鍵字才是最佳實踐。在其他情況下,最好使用顯式轉換,然後除錯 NullReferenceException