C# 静态索引器不应编译,但可以编译
我意识到 C# 中不能有静态索引器。但是为什么下面的代码可以正确编译(在 C# 4.0 下)?
由于 Fred 是一个静态类,因此它甚至无法实例化。声明的静态索引器没有任何意义,但编译器允许它。为什么?我无法想象这是该语言这么晚出现的编译器错误。
public static class Fred {
public static int this[String str] {
get {
if (str != null)
return str.Length;
return -1;
}
}
}
I realize we cannot have static indexers in C#. But the why does the code below compile correctly (under C# 4.0)?
Since Fred is a static class, it cannot even be instantiated. The declared static indexer makes no sense yet the compiler allows it. Why? I can't imagine it's a compiler bug this late into the language.
public static class Fred {
public static int this[String str] {
get {
if (str != null)
return str.Length;
return -1;
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这不能编译。编译期间,Visual Studio 报告 2 个错误,CS0106< /a> 和 CS0720:
This does not compile. During compilation, Visual Studio reports 2 errors, CS0106 and CS0720: