0

継承を含むやや複雑な状況があります。クラスが継承する基本DataObjectクラスがあります。save メソッドを使用してオブジェクトを保存し、保存したばかりのオブジェクトを返しInvoiceたいと考えています。InvoiceDataObjectInvoice

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これが可能かどうかはわかりませんが、そうであることを心から願っています。

4

1 に答える 1