我有一個派生自設備基類的Face類。在基類(Equpiment)中,有一種方法根據數據庫中的rowID填充和返回設備對象。C#向下鑄造問題
派生clasd(FaceClass),我稱之爲超級
public PPE_EquipmentClass GetEquipmentByRowID(Int32 rowID)
{
PPE_EquipmentClass Equipment = new PPE_EquipmentClass();
returns Equipment;
}
在派生類中:
public class PPE_Face : PPE_EquipmentClass
{
public PPE_Face GetFaceData(Int32 rowID)
{
if (rowID>0)
{
try
{
PPE_Face Face = null;
Face = new PPE_Face();
PPE_EquipmentClass _ppeEquip = new PPE_EquipmentClass();
_Face =(PPE_Face) _ppeEquip.GetEquipmentByRowID(rowID);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}
}
}
但我不斷收到
「無法轉換對象類型'PPEWebApp.Classes.PPE_EquipmentClass' 鍵入'PPEWebApp.Classes.PPE_Face'
我不確定爲什麼倒鑄不工作,即使Equipment是基類。
哪條線給你錯誤? – ChrisF 2013-02-18 16:36:32
這段代碼片段不完整嗎? _Face在哪裏宣佈? – 2013-02-18 16:36:44
我看到這個錯誤...它看起來像你不沮喪 - 你是向上傾斜的......這是沒有道理的?例如'_Face =(PPE_Face)_ppeEquip.GetEquipmentByRowID(rowID);'你不能將一個派生類型較少的派生類型轉換爲一個更派生的類型。 – Charleh 2013-02-18 16:38:18