在 .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/