C# 索引器(Indexer)

· 约 4 分钟读完 · 第 32 / 39 章

索引器允许一个对象通过使用方括号([])语法来访问其内部的数据。这使得对象可以像数组一样被操作,从而提供了更自然的接口来访问类中的数据。

定义索引器

索引器定义了对象如何通过方括号操作符来访问其元素。它们通常用于实现自定义的集合或数据结构。索引器可以接受一个或多个参数,并且返回一个值。

在这个例子中,我们创建了一个名为 MyClass 的类,它有一个私有数组 _data 作为存储数据的地方。这个类定义了一个索引器,允许外部代码通过索引器访问和修改 _data 数组中的元素。

使用索引器

索引器可以像数组那样被使用,这使得代码更加直观和易于理解。

在这个例子中,我们首先创建了一个 MyClass 类的实例 obj。然后我们通过索引器设置了索引为50的值,并立即获取并打印了该值。

索引器的参数

索引器可以接受一个或多个参数,这些参数可以是任何类型,但通常会是整型或枚举类型。参数的类型决定了索引器的签名,并影响到索引器的调用方式。

在这个例子中,我们定义了一个名为 Book 的类,其中包含一个索引器,它接受两个参数:一个字符串类型的作者名和一个整型的索引。这个索引器用于存储和检索书籍信息。

只读索引器

如果索引器只包含 get 访问器,则它被称为只读索引器。这使得索引器只能用于检索数据,而不能修改数据。

在这个例子中,我们定义了一个名为 ReadOnlyClass 的类,它有一个只读索引器。这个索引器只能用于从字典中检索数据。为了能够添加数据到字典中,我们提供了一个 Add 方法。

总结

索引器提供了一种自然的方式来访问和操作对象的数据,使得代码看起来更加简洁和直观。通过定义索引器,我们可以让对象的行为类似于数组或集合,这提高了代码的可读性和可维护性。