📜  c# private set - C# (1)

📅  最后修改于: 2023-12-03 14:39:43.868000             🧑  作者: Mango

C#中的Private Set

在C#中,我们可以使用private set关键字来定义只读属性。私有设置使属性具有只读特性,但只允许在类的内部设置属性的值,外部代码无法更改属性的值。

定义只读属性

以下是使用private set定义只读属性的示例:

public class MyClass {
    public string Name { get; private set; }
    public int Age { get; private set; }

    public MyClass(string name, int age) {
        Name = name;
        Age = age;
    }
}

在此示例中,NameAge属性具有私有的set访问器,因此只能在MyClass类的内部更改属性的值。在MyClass类的外部,这些属性是只读的:

var myObj = new MyClass("John", 30);
// myObj.Name = "David";  // 错误:属性“MyClass.Name”只读。
// myObj.Age = 31;        // 错误:属性“MyClass.Age”只读。
只读自动属性

我们还可以使用只读自动属性来定义只读属性。private set可以使只读自动属性的属性值在类的外部不可更改:

public class MyClass {
    public string Name { get; }
    public int Age { get; }

    public MyClass(string name, int age) {
        Name = name;
        Age = age;
    }
}

在此示例中,属性NameAge是只读自动属性。它们被初始化后无法更改。

总结

private set关键字可用于定义C#中的只读属性,属性的值只能在类的内部更改。如果您想要有只读属性,但不希望公开set访问器,请使用只读自动属性。