我可以指示C#类型参数只能是接口类型吗?

前端之家收集整理的这篇文章主要介绍了我可以指示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,但不是任何接口.

无论如何你还需要什么呢?

原文链接:https://www.f2er.com/csharp/100693.html

猜你在找的C#相关文章