c# - 如何确定 MethodInfo 是否是基方法的重写

标签 c# .net reflection overriding methodinfo

我正在尝试确定我从类型实例上的 GetMethod 调用中获得的 MethodInfo 对象是由该类型还是由其基础实现的。

例如:

Foo foo = new Foo();
MethodInfo methodInfo = foo.GetType().GetMethod("ToString",BindingFlags|Instance);

ToString 方法可以在 Foo 类中实现,也可以不实现。我想知道我是否获得了 foo 实现?

Related question

Is it possible to tell if a .NET virtual method has been overriden in a derived class?

最佳答案

检查其 DeclaringType 属性。

if (methodInfo.DeclaringType == typeof(Foo)) {
   // ...
}

关于c# - 如何确定 MethodInfo 是否是基方法的重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/982347/

相关文章:

.net - 如何更改 Microsoft Chart Controls(柱状图)中的轴分隔线颜色

c# - 如何防止用户手动更改文件?

c# - 如何找到两种类型中最小的可分配类型(重复)?

c# - Unity - Android,C# - C++ 内存泄漏

c# - 在WPF中,如何调试触发器?

c# - 在 Parallel.foreach 中等待

c# - 如何从解决方案中引用项目?

c# - 基类中的反射是一个糟糕的设计理念吗?

java - 是否有更简洁的方法来检索未弃用的枚举值?

c# - 使用私有(private)字段或 DependencyProperty 支持绑定(bind)属性有什么区别?