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