Или почему следующее невозможно:
class Material
{
class Keys
{
...
}
Material.Keys Keys { get; set; } // Illegal
}
Я не вижу возможной двусмысленности. При обращении к экземпляру вернуть свойство. При статическом доступе вернуть класс. Или я чего-то упускаю?
Я не прошу «исправления» (я знаю, что могу просто назвать его по-другому, например, MaterialKeys или тому подобное), а скорее по технической причине этого ограничения.