Skip to main content
 首页 » 编程设计

c#之通用集合实例中的多类型约束

2024年01月25日25jiqing9006

我想实例化一个泛型集合(在本例中为字典),但在泛型类型声明中,我想将参数类型约束为多个类。

示例代码如下:

我有很多类都有这个声明:

public class MyClass1 : UserControl, IEspecialOptions 
public class MyClass2 : UserControl, IEspecialOptions, IOtherInterface 

等等

这就是我想要的:

Dictionary<int, T> where T:UserControl, IEspecialOptions myDicc = new Dictionary<int, T>(); 

这看起来很不错,但不能编译。

你知道如何限制第二个参数从 2 个类/接口(interface)继承吗?

我仅限于 .net 2.0

提前致谢

请您参考如下方法:

你不能。但是您可以创建一个既继承了 UserControl 又实现了 IEscpecialOptions 的抽象类,然后将泛型参数限制为抽象类型。