C# 编程指南:属性(Properties)和索引器(Indexers)

在C#中,属性(Properties)和索引器(Indexers)是用于访问类、结构或接口的成员的特殊成员类型。它们允许您在访问字段(或计算值)时提供更简洁、一致和安全的方式。

部分
1
属性的规则和限制
属性是一种特殊的成员,它提供对类、结构或接口的数据的访问方式。
属性可以具有 get 和 set 访问器,用于获取和设置属性的值。
属性可以具有不同的访问修饰符(例如 public、private、protected),以控制对属性的访问级别。
属性可以具有计算值,也可以与实例字段关联。
部分
2
示例代码
属性示例1:定义一个包含 get 和 set 访问器的简单属性。
public class Person
{
    private string name;

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

在上述示例中,我们定义了一个名为 Person 的类,并在其中声明了一个属性 Name。属性具有 get 和 set 访问器,用于获取和设置私有字段 name 的值。

属性示例2:定义一个只读属性和一个自动实现属性。
public class Circle
{
    private readonly double radius;

    public double Radius
    {
        get { return radius; }
    }

    public double Area { get; set; }
}

在上述示例中,我们定义了一个名为 Circle 的类,并声明了两个属性。Radius 属性是只读属性,它只提供 get 访问器来获取私有字段 radius 的值。Area 属性是自动实现属性,它具有默认的 get 和 set 访问器,可以用于访问和修改属性的值。

部分
3
索引器的规则和限制
索引器允许通过索引访问类、结构或接口中的元素。它提供了类似数组的访问语法。
索引器可以具有 get 和 set 访问器,用于获取和设置与索引关联的元素的值。
索引器可以具有不同的参数数量和类型,以支持不同的索引方式。
索引器可以具有不同的访问修饰符,以控制对索引器的访问级别。
部分
4
示例代码
索引器示例1:定义一个简单的索引器。
public class ShoppingCart
{
    private string[] items = new string[10];

    public string this[int index]
    {
        get { return items[index]; }
        set { items[index] = value; }
    }
}

在上述示例中,我们定义了一个名为 ShoppingCart 的类,并声明了一个索引器。索引器允许通过整数索引访问 items 数组中的元素。索引器具有 get 和 set 访问器,用于获取和设置与指定索引关联的元素的值。

索引器示例2:定义一个具有多个参数的索引器。
public class Matrix
{
    private int[,] data = new int[3, 3];

    public int this[int row, int column]
    {
        get { return data[row, column]; }
        set { data[row, column] = value; }
    }
}

在上述示例中,我们定义了一个名为 Matrix 的类,并声明了一个索引器。索引器允许通过行索引和列索引访问二维数组 data 中的元素。索引器具有 get 和 set 访问器,用于获取和设置与指定索引关联的元素的值。 通过属性和索引器,您可以更好地封装和访问类、结构或接口中的数据。它们提供了一种更简洁、灵活和安全的方式来访问和操作对象的成员。

    目录

  • 1.
    属性的规则和限制
  • 2.
    示例代码
  • 3.
    索引器的规则和限制
  • 4.
    示例代码