我有一個基礎對象(RTUDevice)的列表,並且想要遍歷並將其轉換爲派生對象(實際上派生了派生的RTDSensor),但是向下轉換會引發錯誤。構造函數中的基礎對象作爲向下傾斜的替代
public RTUDevice(int id)
{
_id = id;
}
public class RTDDevice : RTUDevice
{
public RTDDevice(int id)
: base(id)
{
}
}
public class RTDSensor : RTDDevice
{
public RTDSensor(int id)
: base(id)
{
}
}
RTDSensor return = (RTDSensor)_devices.Find(d => d.Id == p.ReturnId);
它會更好,以在構造函數傳遞基礎對象RTDSensor像
public RTDSensor(RTUDevice rtu) : base(rtu.Id)
{
}
或者是我的OOP設計沒譜的方式。
是否有一些ORM參與(看起來像有)? Find方法是做什麼的?拋出的異常是什麼?你確定你的p.ReturnId是一個RTDSensor嗎? – Mac 2009-07-29 09:24:58