HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Директива - это…</a></li>
1 <ul><li><a>Директива - это…</a></li>
2 <li><a>Пространства имен - что это</a><ul><li><a>Свойства</a></li>
2 <li><a>Пространства имен - что это</a><ul><li><a>Свойства</a></li>
3 </ul></li>
3 </ul></li>
4 <li><a>Using - описание</a><ul><li><a>Особенности</a></li>
4 <li><a>Using - описание</a><ul><li><a>Особенности</a></li>
5 <li><a>Псевдонимы</a></li>
5 <li><a>Псевдонимы</a></li>
6 </ul></li>
6 </ul></li>
7 <li><a>Наглядный пример</a></li>
7 <li><a>Наглядный пример</a></li>
8 <li><a>Как лучше освоить</a></li>
8 <li><a>Как лучше освоить</a></li>
9 </ul><p>В данной статье будет рассказано о том, что собой представляет пространство имен в C#. Предстоит познакомиться с директивами типа using, а также рассмотреть наглядные примеры использования упомянутых компонентов.</p>
9 </ul><p>В данной статье будет рассказано о том, что собой представляет пространство имен в C#. Предстоит познакомиться с директивами типа using, а также рассмотреть наглядные примеры использования упомянутых компонентов.</p>
10 <h2>Директива - это…</h2>
10 <h2>Директива - это…</h2>
11 <p>Директива - это указание. Определение соответствующего понятия в программировании напоминает термин "команда". Он используется для описания некоторых конструкций ЯП. Указывает, как компилятор или любой иной транслятор должен обрабатывать вводимые данные.</p>
11 <p>Директива - это указание. Определение соответствующего понятия в программировании напоминает термин "команда". Он используется для описания некоторых конструкций ЯП. Указывает, как компилятор или любой иной транслятор должен обрабатывать вводимые данные.</p>
12 <p>Директивы не являются частью грамматики. Они могут меняться в зависимости от компилятора. Обрабатываются процессором для определения поведения компилятора, а также функционируют в виде своеобразной функции внутренней параметризации.</p>
12 <p>Директивы не являются частью грамматики. Они могут меняться в зависимости от компилятора. Обрабатываются процессором для определения поведения компилятора, а также функционируют в виде своеобразной функции внутренней параметризации.</p>
13 <p>Иногда подобные компоненты отвечают за определение глобального поведения, а в некоторых ситуациях действуют локально. В программах на C не являются обязательными. Они могут быть проигнорированы компилятором. Чаще всего носят предписывающий характер. В самом языке директивы (using и не только) не отвечают за выполнение тех или иных действий ЯП - они лишь корректируют поведение компиляторов.</p>
13 <p>Иногда подобные компоненты отвечают за определение глобального поведения, а в некоторых ситуациях действуют локально. В программах на C не являются обязательными. Они могут быть проигнорированы компилятором. Чаще всего носят предписывающий характер. В самом языке директивы (using и не только) не отвечают за выполнение тех или иных действий ЯП - они лишь корректируют поведение компиляторов.</p>
14 <h2>Пространства имен - что это</h2>
14 <h2>Пространства имен - что это</h2>
15 <p>Пространства имен (namespace) - это то, что позволяет выделить определенные части приложений в логические блоки. Поддерживается работа с:</p>
15 <p>Пространства имен (namespace) - это то, что позволяет выделить определенные части приложений в логические блоки. Поддерживается работа с:</p>
16 <ul><li>классами;</li>
16 <ul><li>классами;</li>
17 <li>интерфейсами;</li>
17 <li>интерфейсами;</li>
18 <li>прочими элементами программного кода.</li>
18 <li>прочими элементами программного кода.</li>
19 </ul><p>Подобная концепция позволяет сделать исходный код более читабельным и понятным. Пространства имен применяются специально для организации классов. Помогают контролировать область применения методов в более крупных проектах.</p>
19 </ul><p>Подобная концепция позволяет сделать исходный код более читабельным и понятным. Пространства имен применяются специально для организации классов. Помогают контролировать область применения методов в более крупных проектах.</p>
20 <p>При помощи упомянутого элемента можно сохранить один набор имен (пример - имена классов) отличным от других наборов имен. Преимуществом такого подхода является то, что имена классов, объявленные в пределах одного пространства, не конфликтуют с аналогичными, но в других пространствах.</p>
20 <p>При помощи упомянутого элемента можно сохранить один набор имен (пример - имена классов) отличным от других наборов имен. Преимуществом такого подхода является то, что имена классов, объявленные в пределах одного пространства, не конфликтуют с аналогичными, но в других пространствах.</p>
21 <p>Членами могут выступать:</p>
21 <p>Членами могут выступать:</p>
22 <ul><li>пространства имен;</li>
22 <ul><li>пространства имен;</li>
23 <li>структуры;</li>
23 <li>структуры;</li>
24 <li>делегаты.</li>
24 <li>делегаты.</li>
25 </ul><p>Пространства имен можно охарактеризовать как группу классов, обладающих общими признаками.</p>
25 </ul><p>Пространства имен можно охарактеризовать как группу классов, обладающих общими признаками.</p>
26 <h3>Свойства</h3>
26 <h3>Свойства</h3>
27 <p>Перед тем как изучить директиву using, требуется запомнить следующие свойства именных пространств:</p>
27 <p>Перед тем как изучить директиву using, требуется запомнить следующие свойства именных пространств:</p>
28 <ul><li>организация масштабных проектов по созданию программных кодов;</li>
28 <ul><li>организация масштабных проектов по созданию программных кодов;</li>
29 <li>разделение происходит при помощи оператора "." (точки);</li>
29 <li>разделение происходит при помощи оператора "." (точки);</li>
30 <li>global - корневая область имен.</li>
30 <li>global - корневая область имен.</li>
31 </ul><p>Using - директива, которая позволяет исключить требование на указание названия области имен для каждого класса. Данный компонент избавляет от полной классификации "названий". Далее соответствующий элемент будет рассмотрен более подробно.</p>
31 </ul><p>Using - директива, которая позволяет исключить требование на указание названия области имен для каждого класса. Данный компонент избавляет от полной классификации "названий". Далее соответствующий элемент будет рассмотрен более подробно.</p>
32 <h2>Using - описание</h2>
32 <h2>Using - описание</h2>
33 <p>Директивы using - это то, что производит импорт именных областей, избавляя разработчика от полной классификации имен стереотипов. Дает возможность задействовать определенные типы без указания полной области "названий" соответствующего типа. В базовой форме used используется импорт всех типов именных пространств.</p>
33 <p>Директивы using - это то, что производит импорт именных областей, избавляя разработчика от полной классификации имен стереотипов. Дает возможность задействовать определенные типы без указания полной области "названий" соответствующего типа. В базовой форме used используется импорт всех типов именных пространств.</p>
34 <p>Using directive поддерживает применение двух модификаторов:</p>
34 <p>Using directive поддерживает применение двух модификаторов:</p>
35 <ol><li>Модификатор global. Он будет работать точно так, как и добавление одной директивы use к каждому исходному документу в пределах проекта. Первое появление состоялось в C Sharp 10 версии.</li>
35 <ol><li>Модификатор global. Он будет работать точно так, как и добавление одной директивы use к каждому исходному документу в пределах проекта. Первое появление состоялось в C Sharp 10 версии.</li>
36 <li>Модификатор static. Он производит импорт элементов static, а также вложенных типов из одного типа, а не из всех в пределах области "названий".</li>
36 <li>Модификатор static. Он производит импорт элементов static, а также вложенных типов из одного типа, а не из всех в пределах области "названий".</li>
37 </ol><p>Оба модификатора можно использовать вместе для импорта статистических членов из того или иного типа во всех исходных проектных файлах.</p>
37 </ol><p>Оба модификатора можно использовать вместе для импорта статистических членов из того или иного типа во всех исходных проектных файлах.</p>
38 <p>Сейчас C# поддерживает создание псевдонимов для namespace. Для этого используется директива псевдонимов using:</p>
38 <p>Сейчас C# поддерживает создание псевдонимов для namespace. Для этого используется директива псевдонимов using:</p>
39 <p>using Project = PC.MyCompany.Project;</p>
39 <p>using Project = PC.MyCompany.Project;</p>
40 <p>Модификатор global используется в using alias. Без него область будет ограничиваться файлом, в пределах которого находится директива.</p>
40 <p>Модификатор global используется в using alias. Без него область будет ограничиваться файлом, в пределах которого находится директива.</p>
41 <h3>Особенности</h3>
41 <h3>Особенности</h3>
42 <p>Директива using в C# имеет ряд особенностей. Она отображается в нескольких местах - все зависит от ситуации:</p>
42 <p>Директива using в C# имеет ряд особенностей. Она отображается в нескольких местах - все зависит от ситуации:</p>
43 <ol><li>Начало документа в исходном коде. Перед тем, как объявлять именные "области", а также типы.</li>
43 <ol><li>Начало документа в исходном коде. Перед тем, как объявлять именные "области", а также типы.</li>
44 <li>В любом namespace, но до пространственных имен, объявленных в первой "области". Здесь обязательно, чтобы не использовался модификатор global. Если он присутствует, директива using располагается перед всеми объявлениями.</li>
44 <li>В любом namespace, но до пространственных имен, объявленных в первой "области". Здесь обязательно, чтобы не использовался модификатор global. Если он присутствует, директива using располагается перед всеми объявлениями.</li>
45 </ol><p>Если не соблюдать данные принципы, при попытке обработки кода появится ошибка компиляции CS1529.</p>
45 </ol><p>Если не соблюдать данные принципы, при попытке обработки кода появится ошибка компиляции CS1529.</p>
46 <p>Директива using создается для того, чтобы использовать типы в пространстве имен без необходимости указания его самого. Если использовать using System, больше не придется вводить полный путь. Методы в приложении получится вызывать быстрее и короче.</p>
46 <p>Директива using создается для того, чтобы использовать типы в пространстве имен без необходимости указания его самого. Если использовать using System, больше не придется вводить полный путь. Методы в приложении получится вызывать быстрее и короче.</p>
47 <p>Using - это ключевое слово, которое в C# имеет широкое применение. Оно используется для создания операторов using. Данные элементы используются для грамотной обработки объектов IDisposable - шрифтов и файлов.</p>
47 <p>Using - это ключевое слово, которое в C# имеет широкое применение. Оно используется для создания операторов using. Данные элементы используются для грамотной обработки объектов IDisposable - шрифтов и файлов.</p>
48 <h3>Псевдонимы</h3>
48 <h3>Псевдонимы</h3>
49 <p>Using alias - это директива, позволяющая создавать псевдонимы для namespaces. У нее не может быть открытого универсального типа в правой части. Создать его для List&lt;T&gt; не получится, но можно для List&lt;int&gt;.</p>
49 <p>Using alias - это директива, позволяющая создавать псевдонимы для namespaces. У нее не может быть открытого универсального типа в правой части. Создать его для List&lt;T&gt; не получится, но можно для List&lt;int&gt;.</p>
50 <p>Если отсутствует импорт пространств имен System, полные имена базовых типов окажутся недоступными:</p>
50 <p>Если отсутствует импорт пространств имен System, полные имена базовых типов окажутся недоступными:</p>
51 <p>Для подключения using alias потребуется:</p>
51 <p>Для подключения using alias потребуется:</p>
52 <ol><li>Добавить в References желаемые сборки.</li>
52 <ol><li>Добавить в References желаемые сборки.</li>
53 <li>Открыть соответствующую папку и кликнуть по сборке правой кнопкой мышки.</li>
53 <li>Открыть соответствующую папку и кликнуть по сборке правой кнопкой мышки.</li>
54 <li>Выбрать раздел Properties.</li>
54 <li>Выбрать раздел Properties.</li>
55 <li>Нажать на свойство Aliases.</li>
55 <li>Нажать на свойство Aliases.</li>
56 </ol><p>После этого остается заменить значение global на свое собственное название.</p>
56 </ol><p>После этого остается заменить значение global на свое собственное название.</p>
57 <h2>Наглядный пример</h2>
57 <h2>Наглядный пример</h2>
58 <p>Для того, чтобы хорошо разбираться в директивах и их uses, стоит изучить наглядный пример. Ниже приведен фрагмент кода. Он будет взять за "базу" для изучения directive и оператора:</p>
58 <p>Для того, чтобы хорошо разбираться в директивах и их uses, стоит изучить наглядный пример. Ниже приведен фрагмент кода. Он будет взять за "базу" для изучения directive и оператора:</p>
59 <p>Здесь в операторе using в круглых скобках написано выражение, обработка которого приводит к получению специального объекта. Он будет реализовывать интерфейс System IDisposable. Если объект не реализует интерфейс, на экране появится сообщение об ошибке.</p>
59 <p>Здесь в операторе using в круглых скобках написано выражение, обработка которого приводит к получению специального объекта. Он будет реализовывать интерфейс System IDisposable. Если объект не реализует интерфейс, на экране появится сообщение об ошибке.</p>
60 <p>В приведенном фрагменте объект определяется за пределами оператора using. Соответствующий код может быть записан так:</p>
60 <p>В приведенном фрагменте объект определяется за пределами оператора using. Соответствующий код может быть записан так:</p>
61 <p>После обработки блока using в C происходит автоматический вызов метода Dispose(). Он осуществляется для переданного ранее объекта и располагается в интерфейсе System.IDisposable.</p>
61 <p>После обработки блока using в C происходит автоматический вызов метода Dispose(). Он осуществляется для переданного ранее объекта и располагается в интерфейсе System.IDisposable.</p>
62 <p>При использовании потоков необходимо запомнить - при завершении оперирования ими требуется завершать соответствующие процессы. Аналогичные принципы применяются к базам данных, сокетам, иным источникам. Метод Dispose() будет каждый раз завершать работу с потоком и высвобождать ресурсы.</p>
62 <p>При использовании потоков необходимо запомнить - при завершении оперирования ими требуется завершать соответствующие процессы. Аналогичные принципы применяются к базам данных, сокетам, иным источникам. Метод Dispose() будет каждый раз завершать работу с потоком и высвобождать ресурсы.</p>
63 <p>А вот более простой фрагмент программы:</p>
63 <p>А вот более простой фрагмент программы:</p>
64 <p>Здесь:</p>
64 <p>Здесь:</p>
65 <ol><li>Using namespace std указывает компилятору на импорт всех имен из пространства std в текущую область видимости. В приведенном примере таковым является main().</li>
65 <ol><li>Using namespace std указывает компилятору на импорт всех имен из пространства std в текущую область видимости. В приведенном примере таковым является main().</li>
66 <li>После использования неполного идентификатора count происходит преобразование в std::count.</li>
66 <li>После использования неполного идентификатора count происходит преобразование в std::count.</li>
67 </ol><p>Данный вариант подойдет для того, чтобы упрощать программный код. С ним не придется вручную прописывать и обновлять все неполные имена до полных.</p>
67 </ol><p>Данный вариант подойдет для того, чтобы упрощать программный код. С ним не придется вручную прописывать и обновлять все неполные имена до полных.</p>
68 <h2>Как лучше освоить</h2>
68 <h2>Как лучше освоить</h2>
69 <p>C# - язык, который пользуется спросом у разработчиков. Для того, чтобы хорошенько изучить его директивы, а также пространства имен и иные элементы, можно заняться самообразованием. Это не лучшее решение - обучение может затянуться, а доказать полученные навыки и знания документально окажется невозможно. Именно поэтому рекомендуется отдать предпочтение дистанционным онлайн курсам.</p>
69 <p>C# - язык, который пользуется спросом у разработчиков. Для того, чтобы хорошенько изучить его директивы, а также пространства имен и иные элементы, можно заняться самообразованием. Это не лучшее решение - обучение может затянуться, а доказать полученные навыки и знания документально окажется невозможно. Именно поэтому рекомендуется отдать предпочтение дистанционным онлайн курсам.</p>
70 <p>Они рассчитаны на широкую публику и прекрасно совмещаются со всеми делами - уроки можно просматривать в любое время. Курсы рассчитаны на срок до 12 месяцев. Пользователи получают шанс выбрать одновременно одно или несколько инновационных IT-направлений для изучения. Процесс сопровождается домашними заданиями и богатой практикой. В конце обучения выдается электронный сертификат, подтверждающий приобретенный спектр навыков и знаний.</p>
70 <p>Они рассчитаны на широкую публику и прекрасно совмещаются со всеми делами - уроки можно просматривать в любое время. Курсы рассчитаны на срок до 12 месяцев. Пользователи получают шанс выбрать одновременно одно или несколько инновационных IT-направлений для изучения. Процесс сопровождается домашними заданиями и богатой практикой. В конце обучения выдается электронный сертификат, подтверждающий приобретенный спектр навыков и знаний.</p>
71 <a></a><p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
71 <a></a><p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
72  
72