Debugging clr 4.0中的方法表布局

Debugging clr 4.0中的方法表布局,debugging,c#-4.0,sos,Debugging,C# 4.0,Sos,我有两个类Class1和程序a,如下所示: class Class1 { public void xx() { } } class Program : Class1 { static void Main(string[] args) { } } 但当我看到方法表时,我看不到程序类中继承的公共函数。 为什么会发生这种情况?我认为继承的方法应该出现在方法表程序类中 请给出任何建议,我们可以将其虚拟化以查看差异。感谢回复

我有两个类Class1和程序a,如下所示:

 class Class1
 {
     public void xx()
     { 

     }
 }

 class Program : Class1
 {
     static void Main(string[] args)
     {

     }
 }
但当我看到方法表时,我看不到程序类中继承的公共函数。
为什么会发生这种情况?我认为继承的方法应该出现在方法表程序类中

请给出任何建议,我们可以将其虚拟化以查看差异。感谢回复Hans,我可以创建程序对象并访问base的方法xx()。但现在请告诉我程序对象如何定位到方法xx()因为它不在它的方法表中,编译器已经知道它是非虚拟的,所以它直接生成对Class1.xx()的调用。使用ildasm.exe查看生成的IL.OK,这意味着clr会烧录Class1方法表中方法xx()的地址并对其发出调用。这里clr不需要对Class1方法表的对象引用…….clr会自动执行……“是否正确”