@splunk

С#. Почему нужно прописывать using System.ChildNamespace, когда уже указано using System?

По идее пространство System должно включать вложенные, например, System.Collections и прочие.
Зачем их отдельно прописывать?
Разве нужно отдельно писать System.Сollections и, например, System.Collections.Generic?
  • Вопрос задан
  • 424 просмотра
Решения вопроса 1
yarosroman
@yarosroman Куратор тега C#
C# the best
Не должно, это логически разные зоны видимости. Плюсом в разных namespace могут находится классы с одинаковыми именами, тут у вас компилятор сойдет с ума, и на каждое упоминание класса вам надо делать будет уточнение в виде полного имени.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@heartdevil
плыву как воздушный шарик
Привет.

Неймспейсы -- это просто логическое разбиение кода. Физически код в System не обязан включать код в System.Collections или любой другой код с префиксом System.(префикс). System -- просто указывает, что вы подключаете какой-то код ядра системы.

Вот тут можно ознакомиться с именованием
Ответ написан
Комментировать
lexxpavlov
@lexxpavlov
Программист, преподаватель
Часто вообще можно не писать using, а классы всегда указывать полностью:
System.Int32 i = 10;
System.Console.WriteLine("Строка");
System.Collections.Generic.List<int> list = new System.Collections.Generic.List<int>();

Но если указать using-и, то можно писать меньше (а значит, почти всегда лучше):
Int32 i = 10;
Console.WriteLine("Строка");
List<int> list = new List<int>();

Если в одном файле используются два разных класса с одинаковым именем, то в этом случае можно написать один из классов через using, а второй - написать полное имя. А можно создать псевдоним класса:
using IntList = System.Collections.Generic.List<int>;

IntList lst = new IntList();
List<double> lst2 = new List<double>();

В общем, using-и используются для удобства - меньше писать.

P.S. Если использовать Resharper, то он покажет, что здесь имеются лишние пространства имён: imgur.com/kYvWJqe В таком случае серые слова можно безопасно убрать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы