我希望能够指定这样的东西:
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 次 |
| 最近记录: |