c# – 在类型上查找立即实现的接口
发布时间:2020-12-15 18:26:36 所属栏目:百科 来源:网络整理
导读:在以下场景中调用typeof(Bar).GetInterfaces()时,该方法返回IFoo和IBar. 接口IFoo {} 接口IBar:IFoo {} class Bar:IBar {} 有没有办法可以在Bar上找到直接界面(IBar)? 解决方法 不,在编译的代码中没有“立即”接口这样的东西.您的课程有效编译为: class
在以下场景中调用typeof(Bar).GetInterfaces()时,该方法返回IFoo和IBar.
接口IFoo {} 有没有办法可以在Bar上找到直接界面(IBar)? 解决方法
不,在编译的代码中没有“立即”接口这样的东西.您的课程有效编译为:
class Bar : IBar,IFoo { } 你无法区分这两者.您唯一能做的就是检查所有这些接口,看看两个或多个接口是否相互继承(即使在这种情况下,您也无法真正检查该类的作者是否已明确提及代码中的基接口是不是): static IEnumerable<Type> GetImmediateInterfaces(Type type) { var interfaces = type.GetInterfaces(); var result = new HashSet<Type>(interfaces); foreach (Type i in interfaces) result.ExceptWith(i.GetInterfaces()); return result; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby – Array()应用于哈希?
- 第一章:hybrid app
- ruby-on-rails – 如何将设备中的资源暴露给另一个控制器?
- c – 如何在OpenCV中将灰度图像复制到RGB图像红色通道?
- ios – 将图像从SDWebImage设置为按钮背景
- c# – 单元测试:如何检查生成的javascript(string)是否是有
- QTP中Flex2_Plugins_QuickTestPro插件破解方法
- ruby-on-rails – git push heroku master错误权限被拒绝(p
- c – 为什么在这里使用static_cast而不是reinterpret_cast很
- Oracle 分页数据重复的问题