c# readonly 介绍
readonly是C#中的一个关键字,用于声明只读字段或只读属性。在使用readonly声明后,该字段或属性的值在编译时就必须被初始化,且在程序运行时不允许被修改。
使用方法和注意事项
只读字段
使用 readonly 声明一个只读字段时,必须在 字段定义时
或 在构造函数中
初始化它的值。例如:
public class MyClass
{
public readonly int myReadonlyField;
public MyClass(int value)
{
myReadonlyField = value;
}
}
只读属性
使用 readonly 声明只读属性时,语法上有所不同,只能在属性的 get 访问器内返回一个在声明时或者在构造函数中初始化的值。例如 :
public class MyClass
{
private readonly int myReadonlyProperty;
public int MyReadonlyProperty
{
get { return myReadonlyProperty; }
}
public MyClass(int value)
{
myReadonlyProperty = value;
}
}
注意事项
-
readonly字段或属性必须在其声明或构造函数内进行初始化,初始化后则不允许再次修改。
-
readonly字段或属性的初始化值必须在编译时已知。
-
如果readonly字段是引用类型,那么它所引用的对象可以被修改,只是引用本身不可更改。
-
如果只有一个引用指向某个只读对象,仍然可以使用该引用修改该对象,readonly只保证引用本身不可更改,而不是对象本身。如果想要实现不可修改的对象,可以考虑使用immutable数据结构。
总之,readonly关键字可以用于声明只读字段或属性,它们可以在程序中保证某些值的不可修改,提高程序的健壮性和安全性。