C#实例:索引器实现水果名称关联数据

0 下载量 41 浏览量 更新于2024-08-29 收藏 25KB PDF 举报
在C#编程中,索引器(Indexers)是一种特殊类型的成员,它允许我们像操作数组一样通过名称来访问和修改对象的特定属性或集合元素。在这个简单的实例中,我们看到一个名为`Fruit`的类,该类使用了索引器来存储和操作几种水果的信息,如桃子(peach)、橙子(orange)、香蕉(banana)和苹果(apple)。 首先,`Fruit`类定义了一个名为`this[string fruitName]`的索引器。这个索引器有两个部分:getter和setter。getter用于获取指定水果名称对应的值,而setter则用于设置该名称的值。当调用`f[“peach”]`或`f[“orange”]`时,实际上是在调用这个索引器。 在getter部分,通过`switch`语句根据传入的`fruitName`参数查找对应的字符串值。如果输入的`fruitName`匹配任一已定义的水果名称("peach", "orange", "banana", "apple"),则返回相应的属性值;否则,抛出一个异常,提示"wrongfruitname"。 在setter部分,同样使用`switch`语句根据`fruitName`更新对应的属性值。这里值得注意的是,尽管我们只展示了四种水果,但实际上,你可以扩展这个索引器来添加更多水果。 在`Program`类的`Main`方法中,首先创建了一个`Fruit`对象`f`。然后,我们通过索引器访问和修改`peach`的值。第一行`Console.WriteLine(f[“peach”])`调用getter方法,打印出桃子的默认描述。接着,`f[“peach”]=“Iliketoeatpeach.”`通过setter方法将桃子的描述改为新的字符串。最后再次调用`Console.WriteLine(f[“peach”])`验证设置是否成功。 这个C#索引器实例展示了如何为自定义类实现类似数组的动态访问,提供了灵活性,使得用户可以方便地通过名称而非硬编码的索引来访问和修改类的私有数据。这对于处理动态数据、配置对象或构建可扩展的接口非常有用。