谈谈Object类的终止器的实现!
摘要:在用Reflector加载mscorlib.dll后,看到System.Object类中的Finalize方法是用override修饰的.Object是根类,显然不可能重写其他方法,这里应该是反编译工具生成的结果不正确,我们来验证这一点:大家都知道,为了减轻开发人员的负担,C#中为Finalize方法的定义提供了特殊的语法,用这个语法来定义Finalize方法,编译器可以自动生成合适的异常处理的代...
阅读全文
posted @
2009-10-21 18:41
周雪峰
阅读(1813)
推荐(0) 编辑
静态构造函数趣谈!
摘要:类的静态构造函数也叫类型构造器,静态构造器,他调用的时刻由CLR来控制:CLR会选择如下时间之一来调用静态构造函数: 1,在类型的第一个实例创建之前,或类型的非继承字段或成员第一次访问之前。这里的“之前”,代表前后衔接的意思。这里的时刻是精确的! 2,在非继承的静态字段或成员第一次访问之前的某个时刻,具体时刻不定! 由于调用的时刻不确定,所以我们最好不...
阅读全文
posted @
2009-10-19 11:53
周雪峰
阅读(2483)
推荐(1) 编辑
从内存布局角度谈谈值类型和引用类型!
摘要:深入理解值类型和引用类型,这是.NET开发人员取得长期成功的关键,下面从内存布局角度详细给大家说明一下值类型和引用类型: 值类型的内存结构: 引用类型的内存结构: 引用类型的实例比值类型的实例多了两个附加的字段,SyncBlockIndex和RTTI(运行时类型信息)指针,指向一个方法表结构,所以描述为 MethodTablePtr和TypeObjectPtr都是可以的,〈CLR Via C#〉...
阅读全文
posted @
2009-10-09 18:26
周雪峰
阅读(2638)
推荐(2) 编辑