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

Директива nullable

Директива nullable задаёт nullable-контекст в файле: "#nullable enable", "#nullable disable" или "#nullable restore". Она не меняет само значение null в памяти - только строгость анализа компилятора. При enable присваивание null переменной string без ? обычно даёт предупреждение, а запись string? помечает тип как допускающий null.

Синтаксис

#nullable enable #nullable disable #nullable restore

Пример

Давайте включим контекст и безопасно обработаем null через string?:

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

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

"12345"

Пример

Давайте отключим контекст - присваивание null типу string без ? не вызывает предупреждения:

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

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

"abcde"

Пример

Давайте включим контекст, затем вернём настройку через restore:

#nullable enable using System; class Program { static void Main() { string? left = "12345"; string? right = null; #nullable restore string res = (left ?? "a") + (right ?? "e"); Console.WriteLine(res); } }

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

"12345e"

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

  • нуллевый тип nullable,
    который помечает тип как допускающий null
  • оператор null-coalesce,
    который подставляет значение при null
  • оператор null-forgiving,
    который подавляет предупреждение о null
  • директива pragma,
    которая управляет другими предупреждениями
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить