Синтаксический сахар C#

Синтаксический сахар – довольно полезный инструмент для программиста, несмотря на столь пренебрежительно-гламурное название. Для начала, что вообще такое «синтаксический сахар»? Стандартная википедия дает такое определение: «Синтаксический сахар – синтаксические возможности, применение которых не влияет на поведение программы, но делает использование языка более удобным для человека». Вообще, насчет применения синтаксического сахара существует множество противоположных мнений. Кто-то скажет, что это очень мощная штука, облегчающая жизнь, а кто-то возразит, что это излишество, к тому же, мешающее думать.

На самом же деле синтаксический сахар это способ представить длинный код в боле компактном, лаконичном и читабельном виде. Рассмотрим ряд примеров.

Тернарный оператор. Допустим, у нас есть некоторое условие, в зависимости от которого мы присваиваем значение переменной:

 

Благодаря тернарному оператору, весь код можно записать короче:

Операции +=,-=,*=,/*. На самом деле и этот код можно сократить:

Краткая проверка на null. В данном примере на null переменная проверяется условным оператором:

Сокращенный вариант:

Замечу, что в старых версиях C#, например в той версии, которая в Visual Studio 2010 данный синтаксис не работает. В версии Visual Studio 2015 Он уже есть. В промежуточных – не знаю, не проверял.

Кто-то, возможно, спросит, для чего делать проверку на null? А для того, чтобы программа не вылетела с исключением, так как у не инициализированного указателя мы не можем вызвать метод – объекта то еще не существует.

Псевдонимы. Предположим, что у нас сесть тип со множеством вложенных нэймспейсов, например вот такой Domen.Submomen.SubSubDomen.MyClass, см пример:

Можно сделать код более лаконичным, введя псевдоним:

Переменное число аргументов. Очень удобно, когда в функции можно указать любое число аргументов, например, для вывода их на печать (как команда print в старом добром бэйсике), или, например, просуммировать эти аргументы. C# позволяет подобные выкрутасы. Правда, все аргументы типизированы, но это можно обойти, елси тип сделать object. Давайте рассмотрим парочку примером. Сначала суммирование:

 

Функция суммирует аргументы типа int. Пример использования:

А вот функция с любым типом аргументов (выводит на печать):

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

Перечисление флагов. Очень интересная возможность. Есть в C# такая конструкция, как перечисления, которая позволяет задавать именованные числовые константы. Например:

Теперь, если нам надо закодировать, например, красный цвет, мы можем обратиться к Colors.Red:

А потом проверить его, например, в операторе условия или в свитче:

Но мало кто знает, что можно сделать перечисления флагов. Например, вот так:

Как с ними работать? Например, вот так:

Программа выдаст:

flag2, flag3

Очень легко проверить наличие флага, используя метод HasFlag:

 

 

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar



X

Ищешь разработчика 1С?
Оставь заявку на консультацию

X

Ищешь разработчика?