我希望能够指定这样的东西:
public abstract class ColumnFilter<TCell, TFilterControl> : ColumnFilter
where TFilterControl : FilterControl<>, new()
where TCell : IView, new()
{
}
Run Code Online (Sandbox Code Playgroud)
类 FilterControl<> 是一个基类。我不知道 FilterControl<> 的通用参数是什么。
您不能在类型约束中使用未绑定的泛型类型。您必须添加第三个类型参数,如下所示:
public abstract class ColumnFilter<TCell, TFilterControl, TFilterControlType> : ColumnFilter
where TFilterControl : FilterControl<TFilterControlType>, new()
where TCell : IView, new()
{
}
Run Code Online (Sandbox Code Playgroud)
或者创建一个非通用的基本类型FilterControl
:
public FilterControl { }
public FilterControl<T> : FilterControl { }
public abstract class ColumnFilter<TCell, TFilterControl> : ColumnFilter
where TFilterControl : FilterControl, new()
where TCell : IView, new()
{
}
Run Code Online (Sandbox Code Playgroud)
如果您想强制消费者使用您的泛型派生类型,您还可以abstract
使用internal
构造函数创建基类型。
归档时间: |
|
查看次数: |
754 次 |
最近记录: |