我意识到我们不能在C#中使用静态索引器。但是为什么下面的代码编译正确(在C#4.0下)?
由于Fred是一个静态类,因此甚至无法实例化。声明的静态索引器没有任何意义,但编译器允许它。为什么?我无法想象这是一个编译器错误这种语言的后期。
public static class Fred {
public static int this[String str] {
get {
if (str != null)
return str.Length;
return -1;
}
}
}