gpt4 book ai didi

c# - 泛型约束中的泛型类型

转载 作者:行者123 更新时间:2023-12-05 01:03:39 24 4
gpt4 key购买 nike

我希望能够指定如下内容:

public abstract class ColumnFilter<TCell, TFilterControl> : ColumnFilter
where TFilterControl : FilterControl<>, new()
where TCell : IView, new()
{
}

类 FilterControl<> 是一个基类。我不知道 FilterControl<> 的通用参数是什么。

最佳答案

您不能在类型约束中使用未绑定(bind)的泛型类型。您必须添加第三个类型参数,如下所示:

public abstract class ColumnFilter<TCell, TFilterControl, TFilterControlType> : ColumnFilter
where TFilterControl : FilterControl<TFilterControlType>, new()
where TCell : IView, new()
{
}

或者创建一个非泛型基类型 FilterControl :
public FilterControl { }
public FilterControl<T> : FilterControl { }

public abstract class ColumnFilter<TCell, TFilterControl> : ColumnFilter
where TFilterControl : FilterControl, new()
where TCell : IView, new()
{
}

您也可以将基础类型设为 abstractinternal如果您想强制消费者使用您的泛型派生类型,请使用构造函数。

关于c# - 泛型约束中的泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24410590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com