如何覆盖或创建括号的自定义行为“;[]”;在c#中
本文关键字:自定义 覆盖 何覆盖 创建 | 更新日期: 2023-09-27 18:22:19
可能重复:
如何重载C#中的方括号运算符?
基本上,我想知道是否有一种方法可以实现类似于SqlDataReader对象的方括号的自定义行为。例如,对于SqlDataReader对象,可以使用索引号"Reader[0]",这是方括号的正常操作,也可以提供列名"Reader["id"]"。我知道如何覆盖基本运算符,但似乎找不到任何与更改括号行为有关的内容。
您需要在类型中定义一个索引器
public class MyType {
public string this[int index] {
get {
switch (index) {
case 1: return "hello";
case 2: return "world";
default: return "not found";
}
}
set { ... }
}
}
MyType t = ...;
Console.WriteLine(t[0]); // hello
Console.WriteLine(t[1]); // world