我收到错误Using the generic type GetOption<EnumT>
requires 1 type argument。错误来自我继承的第一行List<GetOption>
我正在尝试建立一个继承结构,我可以在其中对基础对象进行所有处理,并将细节保存在子对象中。子对象的数量为 N。基础对象需要在实例化时被告知子类型。
最父类将从 List 继承,因此我可以在最父对象中具有列表的功能,以添加将在实例化时通知其类型的通用子级。
这是我到目前为止所拥有的:
前两个类是基类
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()
{
}
}
最后两个类是示例子类
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>