bitfan(数字世界一凡人)的专栏

在新浪博客的新家:http://blog.sina.com.cn/bitfan

用户操作
[即时聊天] [发私信] [加为好友]
bitfan(数字世界一凡人)ID:bitfan
378989次访问,排名140好友0人,关注者69
=========
几本小书:
《网站建设教程》:高等教育出版社(2005)
《编程的奥秘——.NET软件技术学习与实践》:电子工业出版社(2006)
《.NET 2.0面向对象编程揭秘》:电子工业出版社(2007)。
《ASP.NET程序设计教程》高等教育出版社(2009)。

几堂小课:
在ITCAST(http://www.itcast.net)讲授.NET系列在线视频课程,想将课堂开到互联网上,目标不大,要帮助更多的年轻人学好技术找到好工作。野心不小,已录制了5个系列30节课,打算一路跟踪微软最新技术,打造国内自成体系、独特风格的微软技术系列课程。
bitfan的文章
原创 88 篇
翻译 0 篇
转载 0 篇
评论 2217 篇
最近评论
SpectreN:很期待金老师的书,金老师加油
holon:不错,支持一下。

------------------------------
www.arraylist.cn cn域名免费送
IT人的酒吧式交流平台
-----------------------------
jxgzcxf:有金老师在前面带路,我们学习起这些技术来也相对轻松了些,不至于太迷惘。敬重金老师!
vxbb_free:楼上的说的吓人了
vxbb_free:楼上的说的吓人了
文章分类
收藏
    相册
    .NET技术学习与实践
    5.2 使用.NET开发数据库应用程序
    数据绑定原理
    杂类
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 回复读者问题:为何C#中类方法的IL代码要放在类型表中?收藏

    新一篇: 本学期.NET课程的新变化 | 旧一篇: 使用泛型在VB.NET中实现VB6.0中的控件数组

    Dear 金老师:
       买了你的书<net2.0面向对象编程解密>后很受启发,但是还有有些觉得不是很完整
    如对象内存模型一章中,写到:一个类可以创建多个实例对象,这些实例对象共享一个类型表
    因为类的静态字段都放置在类型表中,所以类的静态字段被此类创建的所有对象共享
    这可以理解
    但是类的静态和动态方法也是都放在类型表里面的啊
    那么此类创建的所有对象共享动态方法吗?
    这点不理解啊\
       还有第二篇的第四章的继承多态 能否也从对象内存的模型讲解以下 像上面的一样
    比如方法的重载 隐藏 多态  你书上只说了是这样
    没有像第三章那样从内存的角度来说为什么是这样

         深夜打扰 不好意思  也万分感谢你写的书
    小马
    ===========================================================

     我的答复:

    方法(即函数)代码被编译以后,以类为模板创建出来的每个对象,其方法代码(IL指令)都是一样的。如果每个对象都拥有自己的方法代码,是不是很占用内存空间?


    你可能会有点疑惑:如果动态方法是放在类型表中供所有对象共享的,那么方法中的局部变量怎么办?多个对象都调用它,这不乱套了吗?

    其实,方法调用即函数调用,函数调用其返回地址是放在线程堆栈中的,其内部变量也放在线程堆栈中。每调用一次函数,就往线程堆栈中Push一个函数的相关调用信息(包括返回地址和局部变量的值),当函数调用返回时,从线程堆栈中Pop出来就行了,不存在冲突的问题.

    IL代码的JIT编译器会帮助我们根据具体CPU和操作系统的情况生成相应机器指令处理底层的所有技术细节。

    有关多态的内存模型,其实书中是有的,你可以看看<再探CLR对象模型>一节(应该是这一节,记不太清了)。

    发表于 @ 2008年02月04日 11:42:00|评论(loading...)|编辑

    新一篇: 本学期.NET课程的新变化 | 旧一篇: 使用泛型在VB.NET中实现VB6.0中的控件数组

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © bitfan(数字世界一凡人)