在C#中,属性(Properties)和索引器(Indexers)是用于访问类、结构或接口的成员的特殊成员类型。它们允许您在访问字段(或计算值)时提供更简洁、一致和安全的方式。
public class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}
在上述示例中,我们定义了一个名为 Person 的类,并在其中声明了一个属性 Name。属性具有 get 和 set 访问器,用于获取和设置私有字段 name 的值。
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 访问器,可以用于访问和修改属性的值。
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 访问器,用于获取和设置与指定索引关联的元素的值。
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 访问器,用于获取和设置与指定索引关联的元素的值。 通过属性和索引器,您可以更好地封装和访问类、结构或接口中的数据。它们提供了一种更简洁、灵活和安全的方式来访问和操作对象的成员。