Объявление пространств имен в c#?

Узнай цену своей работы

Формулировка задачи:

Всем привет. Почему в данном примере:
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 пример демонстрирует данное правило таким образом, что если снять комментарии с импорта ПИ - после их объявления то будет ошибка.

Решение задачи: «Объявление пространств имен в c#?»

textual
Листинг программы
using System; // это подключение пространства имен
using static System.Console; // а вот это импорт функциональности классов

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы