第七章 常量和字段

字段修饰符

Const 常量的值时在编译时确定的,被视为类型的一部分,是静态成员.会导致创建元数据.

引用这个常量时会把这个值直接嵌入IL代码中.

Static  静态字段,类型的一部分,占用的内存是在类型对象中分配的.类型对象时在该类型第一次被访问到的时候加载的.

对于实例字段则是在创建实例时分配的.而且实例字段在初始化静态字段时,在Vs调试中也是无法看到值的.

Readonly 只读字段.只能在构造器写入,而且构造器只会被调用一次.编译器和验证机制会确保readonly字段不会再别的方法中写入.

但是readonly字段可以通过反射来修改.

如果readonly是引用类型,那么不可修改的是引用,但是引用对象中的值时可以修改的.

C# 允许使用内联的方法初始化字段,但是实际上只是一种语法上的简化,还是在构造器中进行初始化的.同时会有一些性能问题需要考虑.

内联就是在定义类字段的时候直接复制.

原文地址:https://www.cnblogs.com/zhangliming/p/3460146.html