happyhippy

这个世界的问题在于聪明人充满疑惑,而傻子们坚信不疑。--罗素
摘要: 默认(LayoutKind.Sequential)情况下,CLR对struct的Layout的处理方法与C/C++中默认的处理方式相同,即按照结构中占用空间最大的成员进行对齐(Align); 使用LayoutKind.Explicit的情况下,CLR不对结构体进行任何内存对齐(Align),而且我们要小心就是FieldOffset; 使用LayoutKind.Auto的情况下,CLR会对结构体中的字段顺序进行调整,使实例占有尽可能少的内存,并进行4byte的内存对齐(Align)。 阅读全文
posted @ 2007-04-12 16:58 Silent Void 阅读(6020) 评论(9) 推荐(2) 编辑
摘要: MSDN中解释bool与Boolean的关系是:“bool 关键字是 System.Boolean 的别名”。观察上面的Boolean类型定义,在其继承的泛型接口和成员变量中,我们找到了“bool”的影子(我想可能时Reflector将IL代码反汇编时将类型Boolean翻译成C#中的关键字bool),也就是说Boolean的定义依赖与bool(Boolean)。这就好比鸡蛋与鸡,到底是先有鸡蛋还是先有鸡?到底是先有Boolean的类型定义还是先有Boolean类型呢? 阅读全文
posted @ 2007-04-12 16:58 Silent Void 阅读(2073) 评论(4) 推荐(0) 编辑
摘要: 值类型实例的创建位置;引用类型实例的创建位置;托管对象被引用的七种途径;托管对象在托管堆上的结构 阅读全文
posted @ 2007-04-12 06:07 Silent Void 阅读(6471) 评论(13) 推荐(3) 编辑