0 1.2K ru

Выражения языка C#

Categories: 💻 Programming

Код приложений в C# состоит из операторов, состоящих из выражений, операторов, ключевых слов. В данной статье мы рассмотрим операторы языка C#

Выражения языка:

Категория

Выражение

Описание

Основные

x.m

Доступ к членам

x(...)

Вызов методов и делегатов

x[...]

Доступ к массиву и индексатору

x++

Постфиксное приращение

x--

Постфиксное уменьшение

new T(...)

Создание объекта и делегата

new T(...){...}

Создание объекта с использованием инициализатора

new {...}

Инициализатор анонимного объекта

new T[...]

Создание массива

typeof(T)

Получение объекта System.Type для T

checked(x)

Вычисление выражения в контексте checked

unchecked(x)

Вычисление выражения в контексте unchecked

default(T)

Получение значения по умолчанию типа T

delegate {...}

Анонимная функция (анонимный метод)

Унарные

+x

Идентификация

-x

Отрицание

!x

Логическое отрицание

~x

Побитовое отрицание

++x

Префиксное приращение

--x

Префиксное уменьшение

(T)x

Явное преобразование x к типу T

Мультипликативные

x * y

Умножение

x / y

Деление

x % y

Остаток

Аддитивные

x + y

Сложение, объединение строк, объединение делегатов

x – y

Вычитание, удаление делегата

Операторы сдвига

x << y

Поразрядный сдвиг влево

x >> y

Поразрядный сдвиг вправо

Операторы проверки отношения и типа

x < y

Меньше

x > y

Больше

x <= y

Меньше или равно

x >= y

Больше или равно

x is T

Возвращает true, если x имеет тип T; в противном случае возвращает false

x as T

Возвращает значение x, типизированное как T, или null, если x имеет тип, отличный от T

Равенство

x == y

Равно

x != y

Не равно

Логическое AND

x & y

Целое побитовое AND, логическое AND

Исключающее XOR

x ^ y

Целое побитовое исключающее XOR, логическое исключающее XOR

Логическое OR

x | y

Целое побитовое OR, логическое OR

Условное AND

 

x && y

y вычисляется только в том случае, если x имеет значение true

Условное OR

x || y

y вычисляется только в том случае, если x имеет значение false

Слияние с null

X ?? y

Если x имеет значение null, вычисляется y; в противном случае вычисляется x

Условные

x ? y : z

Если x имеет значение true, вычисляется y; если x имеет значение false, вычисляется z

Присваивание или анонимная функция

x = y

Присваивание

x оператор= y

Составное присваивание; поддерживаются следующие операторы:

*=   /=   %=   +=   -=   <<=   >>=   &=   ^=   |=

(T x) => y

Анонимная функция (лямбда-выражение)

Новые возможности языка C# 6:

Инициализация свойств:

public int Property { get; set; } = 151;
public int Property2 { get; } = 322;

Объявление методов и свойств с помощью лямбда выражений:

Методы:

старый вариант:

public bool TestMethod(int version)
        {
            return version == 5;
        }

Запись в C# 6

public bool TestMethod(int version) => version == 5;

Свойства:

старый вариант:

public string TestProperty
        {
            get { return "my testText"; }
        }

Запись в C# 6

public string TestProperty => "my testText";

Фильтры исключений:

Фильтры исключений добавляют условия, при которых срабатывают блоки catch(). вот синтаксис и пример:

   try
   {
   }
   catch (Exception ex) when (ex.Message == "my test error")
   {                
   }

Async в блоках catch и finally

Начиная с 6 версии C#, разрешено использовать асинхронные функции в блоках catch и finally.

Интерполяция строк

Переменные теперь возможно указывать прямо внутри строк

long number = 1123432;
var str1 = $"number: {number}";

Comments:

Please log in to be able add comments.