in C#,编译型常量(const)和运行时常量(readonly)

时间:2022-10-29 12:38:28

readonly 关键字与 const 关键字不同。 const 字段只能在该字段的声明中初始化。 

readonly 字段可以在声明或构造函数中初始化。 因此,根据所使用的构造函数,

readonly 字段可能具有不同的值 另外, const 字段是编译时常量,readonly 

段为运行时常量。

你应该尽量使用运行时常量。原因是变异性常量虽然性能稍微快一些。但是却没有

行时常量那么灵活。就像第一段中所说,使用readonly时,根据使用的构造函数,

readonly字段可能具有不同的值。

编译型常量可以声明在方法中,而只读的运行时常量却不能声明在方法中。

更改一个公有的编译期常量的值应该被看作是对类型接口的修改,必须重新编译所有

引用该常量的代码。而更改只读常量的值却仅仅算作是对类型实现的修改,只需要修

改自身就可以。