请问一下在.net 4中的方法表在内存中布局方式是否和.net 1 中不同呢?
最近先后参考 "clr via c#"(第三版) 和 "essential .net"(第一版) 以及 "你必须知道的.net"(第二版)这三本书,可是在关于方法表在内存中的布局却不一样
在"clr via c#"中说:一个对象的类型对象上的方法表只包含此对象声明的方法,不包含此对象的父类及其基类的方
法,即父类及其基类的方法是存在它们自己的类型对象方法表上的,而子类的类型对象有一个指针指向其父类类型对象,
需用到父类方法时,则循此指针找到父类方法
可是另外2本书说的是: 一个对象的类型对象上的方法表包含从基类开始到父类到子类的方法
这篇文章中有讨论到一点 http://www.cnblogs.com/wang_yb/archive/2011/05/15/2046886.html
到底哪个是正确的呢? 是否是由于另2本由于是讲.net 1.0时代的,而在现在的.net 4 中已经不一样了吗? --------------------编程问答-------------------- 你去了解下.net1.0和.net4.0相差非常大,你应该以现在的.net4.0为准,这版本相差十多年啊 --------------------编程问答-------------------- CLR via C#说的比较靠谱。
CLR1.0~4.0虽然有变化,但是基本还是差不多的。
这张图说明了方法表和虚拟方法表的布局
http://www.microsoft.com/china/MSDN/library/netFramework/netframework/JITCompiler.mspx?mfr=true
--------------------编程问答-------------------- To caozhy:
这张图似乎是跟另外的那2本书说的一样,而和"clr via c#"(第三版) 说的不同 --------------------编程问答-------------------- 怎么不一样。 --------------------编程问答-------------------- 这篇文章跟这张图好像是.net 1.0 中的布局
补充:.NET技术 , .NET Framework