我可以指示C#类型参数只能是接口类型吗?
发布时间:2020-12-15 08:05:52 所属栏目:百科 来源:网络整理
导读:我想实现一个通用的C#类,其大致如下所示: abstract class FoobarT : AbstractBase,T{ ... } 这失败了,因为C#只允许基类之后的类型成为接口,所以接下来我试试这个: abstract class FoobarT : AbstractBase,T where T : interface{ ... } 但后来我发现C#不允
我想实现一个通用的C#类,其大致如下所示:
abstract class Foobar<T> : AbstractBase,T { ... } 这失败了,因为C#只允许基类之后的类型成为接口,所以接下来我试试这个: abstract class Foobar<T> : AbstractBase,T where T : interface { ... } 但后来我发现C#不允许这种形式的类型约束.只有在T:struct和where T:class的地方才允许. 如何指示类型参数必须只是接口类型? 解决方法
基本上,你不能.
您可以对特定接口进行约束,但不能对所有接口进行通用约束.因此,您可以约束IEnumerable,但不是任何接口. 无论如何你还需要什么呢? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |