温馨提示×

c# readonly属性能否修改

c#
小樊
81
2024-11-16 17:18:44
栏目: 编程语言

在C#中,readonly关键字用于声明一个只读字段,这意味着一旦为字段分配了初始值,就不能再修改它的值。然而,如果你尝试在声明后修改readonly字段的值,编译器会报错。

例如:

public class MyClass
{
    public readonly int MyReadonlyField = 10;
}

在这个例子中,MyReadonlyField是一个只读字段,不能直接修改它的值。尝试这样做会导致编译错误:

MyClass obj = new MyClass();
obj.MyReadonlyField = 20; // 编译错误:不能修改只读字段

但是,如果你在一个构造函数中为readonly字段分配值,那么在类的其他方法中可以访问和修改它。这是因为构造函数在创建对象时执行,此时可以为readonly字段分配初始值。一旦对象创建完成,就不能再修改readonly字段的值。

例如:

public class MyClass
{
    public readonly int MyReadonlyField;

    public MyClass(int value)
    {
        MyReadonlyField = value;
    }
}

在这个例子中,MyReadonlyField仍然是一个只读字段,但在构造函数中可以为它分配值。在类的其他方法中可以访问和修改它:

MyClass obj = new MyClass(10);
obj.MyReadonlyField = 20; // 这是允许的,因为我们在构造函数中为其分配了值

0