ビジネスケースがあると仮定しましょういくつかのモデルを使用してマスター - 子構造を表現したいと考えています。マスタークラスと子クラスの両方から継承する特定のクラスがあります。マスターと子の関係で2レベルの継承と抽象化が必要
私は今、私はそれらを継承するために、実際のクラスを必要とする
public abstract class BaseChild
{
public int MyProperty { get; set; }
}
public abstract class BaseMaster
{
public abstract ReadOnlyCollection<BaseChild> Children { get; }
}
下のサンプルを使用しています。だから、エラーが原因
でコンパイルされません。もちろん、
public class FirstRealChild : BaseChild { public int AdditionalProperty { get; set; } } public class FirstRealMaster : BaseMaster { public ReadOnlyCollection<FirstRealChild> Children { get; } }
を以下の持っている 'FirstRealMaster' 'BaseMaster.Children.get'
を継承した抽象メンバー を実装していません。 BaseMaster
クラスからpublic abstract ReadOnlyCollection<BaseChild> Children { get; }
を削除できますが、子が必要なすべての継承クラスに対して制約が失われます。
誰か良いアイデアはありますか?
@Flaugzig子のタイプが異なっているので、それは、問題を解決する方法がわかりません。 – hardywang
本当に、私のコードレビューは少し速かったです:) – Flaugzig
* "マスタークラスと子クラスの両方から継承する特定のクラスがあります" * - C#ではなく、存在しません。 –