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

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

概述我想实现一个通用的C#类,其大致如下所示: abstract class Foobar<T> : AbstractBase, T{ ... } 这失败了,因为C#只允许基类之后的类型成为接口,所以接下来我试试这个: abstract class Foobar<T> : 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,但不是任何接口.

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

总结

以上是内存溢出为你收集整理的我可以指示C#类型参数只能是接口类型吗?全部内容,希望文章能够帮你解决我可以指示C#类型参数只能是接口类型吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1246612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存