📜  对于对象 c# 中的每个属性(1)

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

对于对象 c# 中的每个属性

在C#中,属性(Property)是一种用于访问和操作类或结构的成员变量的一种方式。它们允许程序员通过公共接口隐式控制该变量的读取和写入。

1. 声明属性

属性的声明包括两个访问器方法,即get和set。get访问器用于获取属性的值,而set访问器用于设置属性的值。以下是属性的基本声明语法:

public data_type PropertyName
{
    get { return propertyName; }
    set { propertyName = value; }
}

其中,public表示属性可以从任何地方访问,data_type是属性的数据类型,PropertyName是属性的名称。

2. 示例

下面通过一个示例来说明属性的使用方法:

public class Person
{
    private string name;
    private int age;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    public int Age
    {
        get { return age; }
        set { age = value; }
    }
}

在上述示例中,Person类有两个属性NameAge,它们分别对应私有成员变量nameage。通过使用属性来访问这些成员变量,我们可以在设置属性值时添加一些额外逻辑。

3. 自动实现属性

C# 还提供了一种简化属性声明的语法,称为自动实现属性。通过自动实现属性,编译器会为属性提供一个默认的实现,不需要显式定义私有成员变量。以下是自动实现属性的语法:

public data_type PropertyName { get; set; }

使用自动实现属性的示例:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

在这个示例中,Person类有两个自动实现属性NameAge,编译器会自动生成private字段并提供默认的get和set访问器。

4. 只读属性

如果不希望属性被写入,只能被读取,可以通过省略set访问器来创建只读属性。以下是只读属性的示例:

public data_type PropertyName { get; }

例如:

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

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

在该示例中,NameAge属性的值只能在构造函数中初始化,并且不能在其他地方更改。

5. 计算属性

计算属性(Computed Property)是一种根据其他属性计算得出的属性。以下是计算属性的示例:

public data_type PropertyName
{
    get { // 计算属性值的逻辑 }
}

例如:

public class Circle
{
    private double radius;

    public double Radius
    {
        get { return radius; }
        set { radius = value; }
    }

    public double Diameter
    {
        get { return 2 * radius; }
    }

    public double Area
    {
        get { return Math.PI * radius * radius; }
    }
}

在上述示例中,DiameterArea属性都是根据Radius属性计算得出的。

以上就是关于对象在C#中的每个属性的介绍,你可以根据实际需求选择使用普通属性、自动实现属性、只读属性或计算属性。这些属性提供了简洁且可控制的方式来访问和操作对象的成员变量。