継承を含むやや複雑な状況があります。クラスが継承する基本DataObject
クラスがあります。save メソッドを使用してオブジェクトを保存し、保存したばかりのオブジェクトを返しInvoice
たいと考えています。Invoice
DataObject
Invoice
public abstract class DataObject {
public virtual DataObject Save() {
// Save data
return this;
}
}
派生クラス
public class InvoiceObject : DataObject {
// base data for the class goes here
}
public class Invoice : InvoiceObject {
public override DataObject Save() {
// Somehow return an Invoice object here
return base.Save();
}
}
可能であれば、キャストの使用を避けたいです。どんな洞察も役に立ちます。議論のために、構造は同じままでなければなりません。InvoiceObject
オブジェクトを削除できず、メソッドはデータベースに保存されたオブジェクトSave
全体を返す必要があります。Invoice
これが可能かどうかはわかりませんが、そうであることを心から願っています。