📜  访问对象属性 C# (1)

📅  最后修改于: 2023-12-03 15:41:45.428000             🧑  作者: Mango

访问对象属性 C#

在 C# 中,通过访问对象的属性可以获取或设置对象的状态。对象的属性通常由它的私有字段(private fields)支撑。访问对象的属性需要使用点(.)操作符。

以下是一个类的定义,其中包含了一个私有字段和两个公共属性:

public class Person
{
    private string name; // 私有字段

    public string Name // 公共属性1
    {
        get { return name; } // 获取属性值
        set { name = value; } // 设置属性值
    }

    public int Age // 公共属性2
    {
        get; set; // 自动实现的属性
    }
}

上面的代码使用了“自动实现的属性”的语法,它可以自动为属性生成私有字段和访问器。

访问属性

要获取或设置对象的属性,可以使用以下语法:

Person person = new Person();
person.Name = "Alice"; // 设置属性值
string name = person.Name; // 获取属性值

在上面的示例中,我们创建了一个 Person 对象并访问了它的 Name 属性。要设置属性值,我们使用了等号(=)来赋值;要获取属性值,我们使用了属性的访问器。

访问只读属性

如果属性只有 getter,那么它是只读的。访问只读属性的语法与访问读写属性的语法相同,只需要省略赋值操作即可:

Person person = new Person();
person.Name = "Alice"; // 编译错误:属性 'Person.Name' 只有 getter
string name = person.Name; // 获取属性值

上面的代码中,我们尝试为只有 getter 的属性 Name 赋值,会因为编译错误而失败。然后,我们使用 getter 访问属性。

访问静态属性

静态属性是属于类本身的属性,而不是类的实例。我们可以使用类名来访问静态属性:

public class Calculator
{
    public static double Pi { get; } = 3.14159;
}

double pi = Calculator.Pi;

上面的代码定义了一个静态属性 Pi,并使用类名 Calculator 来访问它。

总结

访问对象属性是 C# 中一个非常基础的概念。我们可以通过访问器来控制对象属性的读写行为,也可以使用自动实现的属性来简化代码。对于只有 getter 的属性,我们不能进行赋值操作;对于静态属性,我们使用类名来访问它。