基本オブジェクト(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設計は的外れです。