摘要: 一、实例构造器:创建一个引用类型实例时,分三步1.为该实例分配内存 2.初始化对象的附近成员(方法表指针,SyncBlockIndex) 3.在调用类型的实例构造器设置对象的初始值。系统为该实例分配内存时总是把所有位上的值设置为0(二进制0),以保证构造器没有赋值的对象都有一个初始值0或者null;如果我们在申明类时没有申明构造器,系统将默认生成一个公有的无参数构造器。 实例值类型构造器:对于值类型 使用new仅仅是调用构造器,来初始化已经分配好的内存,为值类型定义任何构造器都必须初始化,值类型中的所有字段。c#不允许我们为值类型定义实例无参构造器(CLR可以为值类型定义无参构造器,所有可以用 阅读全文
posted @ 2011-04-08 11:40 狼-志 阅读(226) 评论(0) 推荐(0)
摘要: 一、const:常数,字段在编译时,直接把值嵌入到使用它的程序集中,就是说,如果只改名常数定义的程序集中常数的值,而不重新编译整个程序,那么以前引用该常数的程序集中该常数是保持以前的值,而不是重新编译后的值(俗称:版本问题)。二、字段:CLR支持有类型(静态)字段、实例字段(非静态);同时有分为只读字段(加上readonly)和读写字段;静态字段,系统在该类型被加载进入一个应用程序域时,动态分配内存。通常发生在引用该类型的方法第一次被jit编译时。实例字段,系统在该类型的实例被构造时动态为其分配内存。三、只需将一个字段申明为 静态只读(static readonly)字段即可以解决const带 阅读全文
posted @ 2011-04-08 10:36 狼-志 阅读(227) 评论(0) 推荐(0)