const与readonly的区别

1.const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。 const 数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。 const 成员可以使用另一个 const 成员来初始化,前提是两者之间没有循环依赖。
2.readonly 在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把 object 的初始化动作推迟到运行期进行。
3.readonly 关键字与 const 关键字不同: const 字段只能在该字段的声明中初始化。 readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。
4.readonly 只能在声明时或者构造函数里面初始化,并且不能在static 修饰的构造函数里面。

你可能感兴趣的:(c#)