Псевдонимы для пространств имён в языке си шарп

В языке c# ключевое слово using может иметь несколько функций, одна из которых, позволяет создавать псевдонимы.

Чтобы лучше понять, что такое псевдоним, можно представить себе следующее:

У всех во дворе или в школе были прозвища, например, возьмём вымышленного персонажа Артёма Волкова, прозвище в школе — «Волк». Но, не смотря на то, что многие его называют «Волк», все знают, о ком на самом деле идёт речь. То есть слово «Волк» было своего рода псевдонимом для Артёма Волкова. В языке си шарп мы можем создавать точно такие же псевдонимы.

Синтаксис

Так же через точку можно указать несколько пространств имён

Либо можно указать любое количество классов и других членов. Например, создадим псевдоним cool для пространства имён System и класса Console.

Пример использования псевдонима:

псевдоним

Теперь для того, чтобы вывести любое слово на консоль, мы можем применить два способа: стандартный System.Console.WriteLine и новый с использованием псевдонима cool, результат будет одинаковым.

окно консоли

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

Так же псевдонимы можно применять и в таких ситуациях:

Применяя каждый раз, ключевое слово using для того, чтобы каждый раз не писать пространство имен, Вы тем самым облегчаете себе жизнь при написании кода, но может случиться следующая ситуация:

Есть два пространства имён: Auto и Old_Auto, оба они содержат одинаковый тип (класс) по имени Car, при этом это нормальная ситуация, которая будет очень часто встречаться на практике.

код


Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

В ходе написания нашей программы возникла необходимость получить текущую скорость обоих классов Car. Чтобы избавить себя от лишней писанины указываем с помощью ключевое слово using оба пространства имен: Auto и Old_Auto, и начинаем создавать объекты класса Car. Но, возникает ошибка, компилятор не понимает, какой Car мы хотим использовать, ведь их у нас два! И мы получаем ошибку:«Ambiguous name — choose from the following».

ошибка

Как видно в данном случае using не помогает, а наоборот вводит в заблуждение. Поэтому в таком случае мы должны сначала указать нужный нам namespace, а затем имя класса Car, то есть для того, чтобы вызвать метод CurrentSpeed нам нужно указать полное имя. На подсказке, которая появилась во время ошибки, об этом нам как бы намекают, мол, укажите явно: Old_Auto.Car или Auto.Car

обращение по полному имени

результат

результат в окне консоли

В принципе решение нашли, но так же можно было бы воспользоваться и псевдонимами.

решение с псевдонимом

Теперь ошибка о неоднозначности, которую мы получали ранее, появляться не будет. Компилятор точно будет знать, какое пространство имён мы подразумеваем при использовании псевдонима. Какой из способов удобнее выбирать Вам.

Псевдонимы удобная вещь, но применяются на практике не слишком часто, так как могут запутать код. В любом случаи теперь Вы знаете, что есть псевдонимы и знаете, как их можно применять на практике. Возможно, они Вам когда-нибудь пригодятся.

Читайте также:


Чат codeby в telegram перезагрузка

Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.  Подробнее ...

Похожие темы

Зачем нужны пространства имён (namespace) в языке ... Пространства имён (namespace) Одним из основных компонентов платформы .NET Framework является — библиотека классов платформы сокращено (FCL...
Часть 3. Пишем исходный код программы на языке c#... Часть 3. Пишем исходный код программы на языке c# Подготовительные работы окончены, переходим к написанию исходного кода нашей программы на языке c#....