C# では静的インデクサーを使用できないことに気付きました。しかし、以下のコードが (C# 4.0 で) 正しくコンパイルされるのはなぜですか?
Fred は静的クラスであるため、インスタンス化することさえできません。宣言された静的インデクサーは意味がありませんが、コンパイラーはそれを許可しています。なんで?これが言語の後半にあるコンパイラのバグだとは想像できません。
public static class Fred {
public static int this[String str] {
get {
if (str != null)
return str.Length;
return -1;
}
}
}