Я всегда думал об этом, но никогда не понимал, почему.
Простой пример:
public IEnumerator<Effect> GetEnumerator ( )
{
return this.Effects.GetEnumerator ( );
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ( )
{
return this.GetEnumerator ( );
}
Почему вы должны указать:
System.Collections.IEnumerator
но не просто:
Collections.IEnumerator
Я не говорю, что это лучше, но мне кажется, что это пошаговый подход к решению столкновений.
Потому что иногда существуют довольно глубоко вложенные типы, поэтому необходимость набирать полное имя из-за коллизии нехорошо, вместо простого префикса типа с непосредственным пространством имен, которое его содержит, чтобы компилятор мог попытаться найти его в текущемимпортированные / используемые пространства имен.
Кроме того, когда я впервые запускал C #, я всегда обнаруживал, что делаю это, думая, что так оно и будет работать.Было бы здорово увидеть, как другие люди ведут себя свежо в C #, никогда раньше не использовав концепций пространства имен.