如何查看虚拟函数表

本文关键字:函数 虚拟 何查看 | 更新日期: 2023-09-27 18:31:10

我有两个类。一个类继承自另一个类。我也使用多态性与虚函数。 我可以看到虚拟函数表吗?我想了解虚函数的机制。

public class A
{
 public virtual void foo()
 {
 }
}
public class B:A
{
  public override void foo()
  {
  }
}
...
A a=new B();
a.SomeMethod();//show table of virtual function

如何查看虚拟函数表

实际上不可能

看到虚拟表,因为 CLR 多态机制不是基于为每个实例分配的指向虚拟表的指针,就像您可能从C++语言中熟悉的那样。

.NET 为每个实例保留一个指向类型对象的指针,该指针分别指向管理要调用的实际实现的方法表。

查看此处了解更多详情。