Using the generic type GetOption<EnumT>
requires 1 type argumentというエラーが表示されます。エラーは、継承元の最初の行から発生していますList<GetOption>
基本オブジェクトですべての処理を実行し、詳細を子オブジェクトに格納できる継承構造をセットアップしようとしています。子オブジェクトの数は N 個です。基本オブジェクトは、インスタンス化時に子の型を通知する必要があります。
最も親のクラスは List から継承されるため、最も親のオブジェクトにリストの機能を持たせて、インスタンス化時に型が通知される一般的な子を追加できます。
これが私がこれまでに持っているものです:
最初の 2 つのクラスは基本クラスです。
public abstract class GetOptions : List<GetOption>
{
public enum FilterDirections
{
Ascending,
Descending
}
private FilterDirections _filterDirection;
public FilterDirections FilterDirection
{
get { return _filterDirection; }
set { _filterDirection = value; }
}
public GetOptions()
{
FilterDirection = FilterDirections.Ascending;
}
}
public abstract class GetOption<EnumT>
{
private EnumT _column;
public EnumT Column
{
get { return _column; }
set { _column = value; }
}
public GetOption()
{
}
}
最後の 2 つのクラスはサンプルの子クラスです
public class PersonTypeLookupGetOptions : GetOptions
{
public PersonTypeLookupGetOptions() : base() { }
}
public class PersonTypeLookupGetOption : GetOption<PersonTypeLookup.PersonTypeLookupFields>
{
}
自分がやろうとしていることをどのように達成できますか?
編集:
私がやろうとしているのは、子オブジェクトで継承しているリスト内のオブジェクトのタイプを定義することです。
最初の質問の下のコメントで、必要な解決策にたどり着くことができました。クラスの定義は次のとおりです。
public abstract class GetOptions<ChildT, EnumT> : List<ChildT> where ChildT : GetOption<EnumT>
public abstract class GetOption<EnumT>
public class PersonTypeLookupGetOptions : GetOptions<PersonTypeLookupGetOption, PersonTypeLookup.PersonTypeLookupFields>
public class PersonTypeLookupGetOption : GetOption<PersonTypeLookup.PersonTypeLookupFields>