我有两个class.One类继承自另一个。我也使用多态与虚函数。我可以看一下虚函数表吗?我想了解虚函数的机制。
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
答案 0 :(得分:2)
实际上看不到虚拟表是不可能的,因为CLR多态机制不是基于为每个实例分配的指针,指针指向您可能熟悉的C ++语言的虚拟表。
.NET为每个实例保留一个指向类型对象的指针,它们分别指向一个方法表,用于管理要调用的实际实现。
查看here了解更多详情。