我想实现一个通用的C#类,大致如下所示:
abstract class Foobar<T> : AbstractBase, T
{ ... }
这失败了,因为C#只允许基类之后的类型成为接口,所以接下来我尝试这样做:
abstract class Foobar<T> : AbstractBase, T where T : interface
{ ... }
但后来我发现C#不允许这种形式的类型约束。仅允许其中T:struct
和中T:class
。
如何规定类型参数只能是接口类型?