如何覆盖或创建括号的自定义行为“;[……”是;在c#中?
可能重复:如何覆盖或创建括号的自定义行为“;[……”是;在c#中?,c#,.net,C#,.net,可能重复: 基本上,我想知道是否有一种方法可以实现类似于SqlDataReader对象的括号的自定义行为。例如,对于SqlDataReader对象,可以使用索引号“Reader[0]”,这是方括号的正常操作,也可以提供列名“Reader[“id”]”。我知道如何重写基本运算符,但似乎找不到任何与更改括号行为有关的内容。您需要在类型中定义索引器 public class MyType { public string this[int index] { get { swi
基本上,我想知道是否有一种方法可以实现类似于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
谢谢,这正是我想要的。对不起,重复的问题,当我尝试搜索[]时,我不断得到奇怪的结果。