在C#中,基類實例可以轉換為派生類實例,但是這只能在派生類實例中包含了基類實例的所有成員和方法的情況下進行。這種轉換稱為向上轉換或者向下轉換。
向上轉換:將派生類實例轉換為基類實例。這種轉換是隱式的,因為派生類包含了基類的所有成員和方法,所以可以將派生類實例賦值給基類實例。
class BaseClass { }
class DerivedClass : BaseClass { }
DerivedClass derivedObj = new DerivedClass();
BaseClass baseObj = derivedObj; // 向上轉換
向下轉換:將基類實例轉換為派生類實例。這種轉換是顯式的,因為基類不包含派生類的所有成員和方法,所以需要顯式地將基類實例轉換為派生類實例。
BaseClass baseObj = new BaseClass();
DerivedClass derivedObj = baseObj as DerivedClass; // 向下轉換
if (derivedObj != null)
{
// 轉換成功
}
需要注意的是,在進行向下轉換時,需要使用as關鍵字進行轉換,同時需要進行null檢查以確保轉換成功。如果轉換失敗,as操作符會返回null值。