オブジェクト BaseObject と DerivedObject があります。次に、BaseObject に BaseContainer を与え、DerivedObject に DerivedContainer を与えます。
(DerivedObject : BaseObject、DerivedContainer : BaseContainer)
たとえば、次のnew
キーワードを使用します。
ベースオブジェクト:
public BaseContainer コンテナ {get; 設定;}
派生オブジェクト:
public new DerivedContainer Container
{
get { return (DerivedContainer)base.Container; }
set { base.Container = value;
//Some extra things that MUST be called
}
}
virtual
override
戻り値の型を変更できないため、機能しません(失敗get;
)。
の余分なコード(コメント部分)を呼び出していないため、new
私が行うと機能しません。((BaseObject)myDerivedObject).Container = something
DerivedObject.Container__set
プロパティのみを作成しget
、 を使用new
し、仮想セッター メソッドを追加できることはわかっています (戻り値の型はいずれにせよ void であるため、オーバーライドできます) が、これを回避する方法があるかどうか疑問に思っていました。