首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将接口用作C#泛型类型约束?

如何将接口用作C#泛型类型约束?
EN

Stack Overflow用户
提问于 2009-07-08 07:18:02
回答 8查看 132.2K关注 0票数 184

有没有办法获得下面的函数声明?

public bool Foo<T>() where T : interface;

即。其中T是接口类型(类似于where T : classstruct)。

目前,我已经满足于:

public bool Foo<T>() where T : IBase;

其中IBase被定义为一个空接口,它由我的所有自定义接口继承...不是很理想,但应该能行得通。为什么不能定义泛型类型必须是接口呢?

不管它有什么价值,我之所以要这样做,是因为Foo在需要接口类型的地方进行反射……我可以将其作为一个普通参数传入,并在函数本身中进行必要的检查,但这似乎更加安全(而且我认为性能更好,因为所有检查都是在编译时完成的)。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1096568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档