Почему имя члена класса не может совпадать с именем одного из его вложенных классов?

Или почему следующее невозможно:

class Material
{
    class Keys
    {
        ...
    }

    Material.Keys Keys { get; set; } // Illegal
}

Я не вижу возможной двусмысленности. При обращении к экземпляру вернуть свойство. При статическом доступе вернуть класс. Или я чего-то упускаю?

Я не прошу «исправления» (я знаю, что могу просто назвать его по-другому, например, MaterialKeys или тому подобное), а скорее по технической причине этого ограничения.

16
задан Lazlo 19 January 2011 в 03:01
поделиться