Всем привет. Почему в данном примере:
using NamespaceA.NamespaceB.NamespaceC;
namespace NamespaceA
{
namespace NamespaceB
{
namespace NamespaceC
{
class MyClassC { }
}
class MyClassB { }
}
class MyClassA { }
}
// В данном месте импорт недопустим.
// Импорт допустим или в теле namespace, или перед всеми другими пространствами имен.
//using NamespaceA;
//using NamespaceA.NamespaceB;
//using NamespaceA.NamespaceB.NamespaceC;
namespace Namespaces
{
class Program
{
static void Main()
{
MyClassA myA = new MyClassA();
MyClassB myB = new MyClassB();
MyClassC myC = new MyClassC();
}
}
}
Который демонстрирует правило :
// В данном месте импорт недопустим.
// Импорт допустим или в теле namespace, или перед всеми другими пространствами имен.
так вот, у меня вопрос к данному правилу. Ведь c# - это компилируемый язык а не интерпретируемый, а значит код не читается строчка за строчкой а строится синтаксическое дерево. И поэтому мне интересно не все ли равно где объявлять пространства имен?
P,s пример демонстрирует данное правило таким образом, что если снять комментарии с импорта ПИ - после их объявления то будет ошибка.