2011年2月27日

关于.net中值类型的方法调用

摘要: 最近在看关于box和unbox的内存分配问题,发现一旦值类型调用了基类的方法或接口的时候就会发生装箱操作。因为基类型的方法或接口必须通过TypeHandle获得。由此引出了一个问题。若所执行的方法并不是基类型的虚方法而是值类型自己定义的方法时,CLR又是如何找到值类型的方法代码呢? 对于引用类型,CLR可以通过在堆中的TypeHandle找到其对应的MethodTable,进而定位到此类型的方法代码,编译并执行之。然而值类型是分配在栈上,并没有TypeHandle,它是如何找到方法表的? 。。。public Struct MyStruct{ private int a; private in. 阅读全文

posted @ 2011-02-27 14:23 gws 阅读(456) 评论(10) 推荐(0) 编辑

导航