c# - IsAssignableFrom 和 GetInterface 之间有什么区别?

标签 c# .net reflection

在 .Net 中使用反射,有什么区别:

   if (foo.IsAssignableFrom(typeof(IBar)))

   if (foo.GetInterface(typeof(IBar).FullName) != null)

哪个更合适,为什么?

什么时候一个或另一个会失败?

最佳答案

如果您只想查看一个类型是否实现了给定的接口(interface),两者都可以,尽管 GetInterface() 可能更快,因为 IsAssignableFrom() 比 GetInterface() 进行更多的内部检查。检查 Type.GetInterfaces() 的结果可能会更快,它返回与其他两种方法都使用的相同内部列表。

关于c# - IsAssignableFrom 和 GetInterface 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/99732/

相关文章:

c# - UWP 应用程序是否支持 Application Insights?

c# - 如何从多维数组创建字符串向量?

c# - 如何搜索除id之外的其他字段

c# - 在不尝试发送电子邮件的情况下检查邮件服务器是否使用 SSL

c# - ASP.net Web 应用程序,通过创建服务向浏览器推送通知

.net - 枚举序列化 Json 与 XML

java - 如何使用 java 反射自动将值从 java bean 复制到 protobuf 消息对象?

c# - 将盒装对象转换回原始类型

java - 检查加载的类是否可以从另一个分配?

c# - 如何生成具有重复值的树