クラス制約のあるジェネリッククラスがあります。
public class MyContainer<T> where T : MyBaseRow
MyBaseRowは、MyContainerのフレーバーのメンバーも含めたい抽象クラスです。
public abstract class MyBaseRow
{
public MyContainer<MyBaseRow> ParentContainer;
public MyBaseRow(MyContainer<MyBaseRow> parentContainer)
{
ParentContainer = parentContainer;
}
}
MyBaseRowから継承されたクラスのコンストラクターに問題があります。
public class MyInheritedRowA : MyBaseRow
{
public MyInheritedRowA(MyContainer<MyInheritedRowA> parentContainer)
: base(parentContainer)
{ }
}
コンストラクターでMyAliExpressRowAを許可しません。コンパイラーは、MyBaseRowのみを予期し、許可します。ジェネリッククラスの制約で継承が可能だと思いましたか?ここで何が間違っているのでしょうか。これを回避するためにこれらのクラスを再設計する方法はありますか?ご回答ありがとうございます。