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

Нуллевый тип

Запись T? помечает тип как допускающий null. Для ссылочных типов, например string?, это аннотация в режиме nullable-контекста. Для значимых типов int?, bool? и других форма T? означает «значение типа T или null». Чтобы предупреждения о null имели смысл, в начале файла включают #nullable enable.

Синтаксис

тип?

Пример

Давайте объявим строку, которая может быть null:

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

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

"abcde" True

Пример

Давайте зададим nullable-целое и выведем число:

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

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

12

Пример

Давайте присвоим null переменной int?:

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

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

True

Пример

Давайте сравним обычный int и int? при отсутствии значения:

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

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

False

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

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