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

Оператор ??

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

Синтаксис

выражение ?? запасное

Пример

Давайте подставим запасную строку, если слева null:

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

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

"abcde"

Пример

Давайте оставим исходное значение, если оно задано:

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

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

"12345"

Пример

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

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

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

12

Пример

Давайте сцепим несколько ?? подряд:

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

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

"abcde"

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

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