【发布时间】:2011-06-11 12:06:57
【问题描述】:
或者为什么以下是不可能的:
class Material
{
class Keys
{
...
}
Material.Keys Keys { get; set; } // Illegal
}
我没有看到任何可能的歧义。通过实例访问时,返回属性。静态访问时,返回类。还是我错过了什么?
我不是要求“修复”(我知道我可以换个名字,比如 MaterialKeys 等),但更多的是这个限制背后的技术原因。
【问题讨论】:
-
这是我希望看到的工作场景。我想声明一个内部类并在外部类中声明该类型的成员是完全有道理的。外部类恰好包含它定义的事物的一个实例。那件事不是为了在任何其他上下文中工作而设计的,所以类和成员都在同一个命名空间中是有意义的(这意味着外部类是命名空间......而不是 c# 命名空间关键字)。要将类和成员都放在同一个(外部)类中,我必须命名其中一个。但是我想要一个奇怪的名字呢?
标签: c# properties conflict nested-class