《C#高效编程》读书笔记02-用运行时常量(readonly)而不是编译期常量(const)
C#有两种类型的常量:编译期常量
和运行时常量
。两者有截然不同的行为,使用不当的话,会造成性能问题,如果没法确定,则使用慢点,但能保证正确的运行时常量
。
运行时常量使用readonly
关键字声明,编译期常量则使用const
关键字声明:
//声明编译期常量
public const int Millennium = 2000;
//声明运行时常量
public static readonly int ThisYear = 2017;
二者最重要的区别在于,readonly
值是运行时解析的,而const
是在生成IL码就已经确定。
const
声明的常量必须不能改变,若改变了,则需要重新编译所有引用的程序集。