或者为什么以下是不可能的:
class Material
{
class Keys
{
...
}
Material.Keys Keys { get; set; } // Illegal
}
我没有看到任何可能的歧义。当被实例访问时,返回该属性。静态访问时,返回类。或者我错过了什么?
我并不是要求“修复”(我知道我可以以不同的方式命名它,例如 MaterialKeys 等),但更多的是此限制背后的技术原因。
但想象一下你有这个:
class Material
{
class Keys
{
...
}
static Material.Keys Keys = new Keys();
}
现在两者都处于“静态”范围。现在,编译器可以在所有情况下消除歧义吗?如果不是,那就不能允许这样做。
我认为消歧可能适用于静态字段/属性/方法,而不适用于成员。或者反过来。如果是这种情况,您是否希望语言规范允许实例成员与内部类具有相同的名称,但不允许它用于静态?那只会令人困惑。
但是,无论如何,让一个成员与内部类的名称匹配是相当令人困惑的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)