c#

C#属性与索引器如何实现自定义

小樊
82
2024-10-24 01:33:23
栏目: 编程语言

在C#中,属性(Properties)和索引器(Indexers)都可以用来实现自定义的访问方式。下面分别介绍如何使用它们来实现自定义。

  1. 属性(Properties)

属性是一种特殊的成员,它允许你在外部通过一个简单的名称访问类的内部成员。要创建一个属性,你需要定义一个访问器(accessor)和一个后备字段(backing field)。访问器可以是get或set访问器,分别用于读取和修改属性的值。

下面是一个简单的属性示例:

public class Person
{
    // 后备字段
    private string _name;

    // get访问器
    public string Name
    {
        get { return _name; }
    }

    // set访问器
    public void SetName(string value)
    {
        _name = value;
    }
}

使用属性:

Person person = new Person();
person.SetName("John");
Console.WriteLine(person.Name); // 输出 "John"
  1. 索引器(Indexers)

索引器允许你通过一个类似于数组的方式访问类的实例。要创建一个索引器,你需要定义一个get和/或set访问器,以及一个表示索引的参数。

下面是一个简单的索引器示例:

public class CustomCollection
{
    // 后备字段,类型为object[]
    private object[] _items;

    // 索引器get访问器
    public object this[int index]
    {
        get
        {
            return _items[index];
        }
        set
        {
            _items[index] = value;
        }
    }
}

使用索引器:

CustomCollection collection = new CustomCollection();
collection[0] = "Hello";
collection[1] = "World";
Console.WriteLine(collection[0]); // 输出 "Hello"
Console.WriteLine(collection[1]); // 输出 "World"

通过这两种方法,你可以实现自定义的访问方式,使得类的实例更容易使用和理解。

0
看了该问题的人还看了