C#在一个类中怎样定义和使用多个不同类型的索引器?
时间: 2024-09-06 20:01:33 浏览: 65
C#入门之索引器使用实例
在C#中,一个类可以定义多个不同类型的索引器,但这并不常见,因为通常索引器都是为了提供统一的接口来访问内部的数据。如果你确实需要这样做,你需要为每个不同的键类型分别创建`get_Item`和`set_Item`方法,例如:
```csharp
public class MultiIndexerExample {
private Dictionary<string, int> stringIndex;
private Dictionary<int, string> integerIndex;
// 使用string类型的索引器
public int GetByString(string key) => stringIndex[key];
public void SetByString(string key, int value) => stringIndex[key] = value;
// 使用int类型的索引器
public string GetByInteger(int key) => integerIndex[key];
public void SetByInteger(int key, string value) => integerIndex[key] = value;
}
```
在这个例子中,我们为字符串和整数分别定义了各自的`Get`和`Set`方法。然而,这可能会导致代码复杂性和维护性的问题,通常建议只定义一个通用的索引器,除非有特定业务需求。
阅读全文