私のC#プロジェクトでは、2つの抽象ジェネリック親クラスがあり、継承する複数の子クラスがあります。問題は、親のジェネリックに子タイプを渡していることと、愚かな見た目のクラスとメソッドの定義を作ることです。抽象的な汎用親クラスは自動的に子(拡張)型を取得できますか?
ジェネリック親クラスに継承しているクラスの型を取得する方法はありますか?したがって、DTOBaseの型を渡す代わりに、DTOBaseの最初の子の型に宣言します。
親クラス定義
public abstract class DTOBase<T> : INotifyPropertyChanged, IMergeable<T>
public abstract class ModelBase<T,U> : INotifyPropertyChanged, ITrackable, IMergeable<U>
where T : DTOBase<T>
where U : ModelBase<T,U>
あなたは簡単に他の方法で表現することができないタイプの関係を持っている場合
public class MenuGroup : DTOBase<MenuGroup>
public class MenuGroup : ModelBase<DTOs.MenuGroup, MenuGroup>
なぜ継承クラスの型が必要ですか? – svick
最初の例のDTOBaseでは、IMergeableインターフェイス定義の継承クラスの型が必要です。 –