Я играю с пространствами имен и столкнулся с проблемой, которую не могу понять.
Моя структура пространства имен в данной библиотеке классов выглядит следующим образом:
Namespace History
Namespace History.Antiquity
Namespace History.Antiquity.East
Namespace History.Antiquity.West
Когда внутриИсходный файл, который объявляет историю пространства имен, я не могу использовать ни один из типов, определенных в History.Antiquity.East
или History.Antiquity.West
, без их полной квалификации или без их квалификации, начиная с "Античности".
Пример кода:
Следующий пример, например, дает мне ошибку во время компиляции (при условии, что тип «Персия» определен в History.Antiquity.East):
using History.Antiquity;
namespace History
{
public class foo
{
public foo()
{
East.Persia.Conquer(); // error!
}
}
}
Мне нужно либо полностью квалифицировать Персию, либо квалифицировать ее, начиная с античности.Кроме того, я могу ввести псевдоним:
using East = History.Antiquity.East;
Актуальный вопрос:
То, что я не могу понять, это то, почему возникает проблема с этой структурой пространства имен,Как может быть, что .Net находит это противоречивым?