Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
61 of 1492 menu
◀ ▶

Оператор ??=

Составной оператор ??= сначала проверяет текущее значение переменной слева. Если оно null, выполняется присваивание из правой части; если значение уже есть, переменная не меняется и правая часть не вычисляется. Удобно задавать значение по умолчанию один раз. В примерах включён #nullable enable.

Синтаксис

переменная ??= выражение

Пример

Давайте запишем строку, пока переменная пуста:

#nullable enable using System; class Program { static void Main() { string? str = null; str ??= "abcde"; Console.WriteLine(str); } }

Результат выполнения кода:

"abcde"

Пример

Давайте не перезаписываем уже заданное значение:

#nullable enable using System; class Program { static void Main() { string? str = "12345"; str ??= "abcde"; Console.WriteLine(str); } }

Результат выполнения кода:

"12345"

Пример

Давайте применим ??= к int?:

#nullable enable using System; class Program { static void Main() { int? num = null; num ??= 12; Console.WriteLine(num); } }

Результат выполнения кода:

12

Пример

Давайте дважды вызвать ??= подряд:

#nullable enable using System; class Program { static void Main() { string? str = null; str ??= "abcde"; str ??= "12345"; Console.WriteLine(str); } }

Результат выполнения кода:

"abcde"

Смотрите также

  • оператор ??,
    который возвращает запасное без изменения переменной
  • оператор ?.,
    который обращается к члену только при не null
  • литерал default,
    который даёт нулевое значение типа
  • запись T?,
    которая допускает null
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить