📅  最后修改于: 2023-12-03 15:41:45.428000             🧑  作者: Mango
在 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 的属性,我们不能进行赋值操作;对于静态属性,我们使用类名来访问它。