Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
using MyShapes;using My3DShapes;// Устранить неоднозначность, используя специальный псевдоним.using The3DHexagon = My3DShapes.Hexagon;// На самом деле здесь создается экземпляр класса My3DShapes.Hexagon.The3DHexagon h2 = new The3DHexagon();...Продемонстрированный альтернативный синтаксис
usingSystem.Runtime.Serialization.Formatters.BinaryBinaryFormatterBinaryFormatterusing bfHome = System.Runtime.Serialization.Formatters.Binary;bfHome.BinaryFormatter b = new bfHome.BinaryFormatter();...либо с использованием традиционной директивы
usingusing System.Runtime.Serialization.Formatters.Binary;BinaryFormatter b = new BinaryFormatter();...На данном этапе не нужно беспокоиться о предназначении класса
BinaryFormatterusingНа заметку! Имейте в виду, что чрезмерное применение псевдонимов C# в результате может привести к получению запутанной кодовой базы. Если другие программисты в команде не знают о ваших специальных псевдонимах, то они могут полагать, что псевдонимы ссылаются на типы из библиотек базовых классов, и прийти в замешательство, не обнаружив их описания в документации.
Создание вложенных пространств имен
При организации типов допускается определять пространства имен внутри других пространств имен. В библиотеках базовых классов подобное встречается во многих местах и обеспечивает размещение типов на более глубоких уровнях. Например, пространство имен
IOSystemSystem.IOШаблоны проектов .NET Core помещают начальный код в файле
Program.csCustomNamespacesnamespace <b>CustomNamespaces</b>{ class Program { ... }}На заметку! В случае замены комбинации
Program/Main()Вложить пространства имен
MyShapesMy3DShapesnamespace<b>namespace CustomNamespaces</b>{<b> namespace MyShapes</b> { // Класс Circle public class Circle { /* Интересные методы... */ } }}Второй (и более распространенный) способ предусматривает использование "точечной записи" в определении пространства имен, как показано ниже:
namespace <b>CustomNamespaces.MyShapes</b>{ // Класс Circle public class Circle { /* Интересные методы... */ }}Пространства имен не обязаны содержать какие-то типы непосредственно, что позволяет применять их для обеспечения дополнительного уровня области действия.
Учитывая, что теперь пространство
My3DShapesCustomNamespacesusingusing The3DHexagon = CustomNamespaces.My3DShapes.Hexagon;using CustomNamespaces.MyShapes;На заметку! На практике принято группировать файлы в пространстве имен по каталогам. Вообще говоря, расположение файла в рамках структуры каталогов никак не влияет на пространства имен. Однако такой подход делает структуру пространств имен более ясной (и конкретной) для других разработчиков. По этой причине многие разработчики и инструменты анализа кода ожидают соответствия пространств имен структуре каталогов.
Изменение стандартного пространства имен в Visual Studio
Как упоминалось ранее, при создании нового проекта C# с использованием Visual Studio (либо интерфейса .NET Core CLI) название корневого пространства имен приложения будет совпадать с именем проекта. Когда затем в Visual Studio к проекту добавляются новые файлы кода с применением пункта меню Project►Add New Item (Проекта►Добавить новый элемент), типы будут автоматически помещаться внутрь корневого пространства имен. Если вы хотите изменить название корневого пространства имен, тогда откройте окно свойств проекта, перейдите в нем на вкладку Application (Приложение) и введите желаемое имя в поле Default namespace (Стандартное пространство имен), как показано на рис. 16.1.
Похожие книги на "Язык программирования C#9 и платформа .NET5", Троелсен Эндрю
Троелсен Эндрю читать все книги автора по порядку
Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.