за кулисами пространства имен в c #? - PullRequest
0 голосов
/ 05 марта 2019
using System;

namespace HelloWorld
{
    partial class Program
    {
          static void Main(string[] args)
        {
            Console.WriteLine();
        }
    }
} 


мой вопрос: когда мы используем System вверху, все ли коды в этом пространстве имен загружаются за сценой в этом пространстве имен (HelloWorld) ???

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Пространства имен ничего не делают для скомпилированной программы, это просто способ организовать ваш код.Ничего не загружено за сценой.Когда два класса находятся в одном пространстве имен, вам не нужно добавлять использование, чтобы иметь возможность ссылаться на этот класс.

Конечно, если пространство имен, которое вы используете, находится в сборке, на которую нет автоматической ссылки, вам также необходимо добавить ссылку.«использование» не делает этого для вас.

Вот хороший справочник для пространств имен:

https://www.programiz.com/csharp-programming/namespaces

0 голосов
/ 05 марта 2019

using не меняет способ загрузки кода.Это только изменяет, какие пространства имен допускаются неявно, когда компилятор анализирует и компилирует код.Я думаю, что сгенерированный вывод из компилятора такой же, как если бы вы не использовали using, но вместо этого явно указали полное имя каждой ссылки.

Но чтобы ответить на ваш другой вопрос, да, каждыйЭто влияет на объект в пространстве имен, поэтому вы должны иметь возможность ссылаться на Console без явного включения System. перед ним.Имейте в виду, что using отличается от добавления ссылки.Если у вас нет ссылки на System.dll, вы все равно получите ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...