Важные темы C#

Ссылочные типы, допускающие null, в C#

В этом уроке вы будете использовать ссылочные типы, допускающие null, чтобы компилятор помогал находить места, где может появиться null.

Введение

Ошибка NullReferenceException возникает при обращении к переменной, равной null, и это одна из самых частых ошибок. C# позволяет явно указать, какие переменные могут быть null, с помощью знака ?, например string?. Тогда компилятор предупредит, если вы используете такую переменную без проверки на null.

Переменная nickname имеет тип string?, поэтому может быть равна null. Оператор ?? (null-coalescing) возвращает "Anonymous", если nickname равен null, поэтому у displayName всегда есть значение и обращение к Length безопасно. На экран выводится Anonymous (9).

Пример на C#, который можно запустить

C#
Запустить код →
Program.cs
using System;

class Program
{
    static void Main()
    {
        string? nickname = null;
        string displayName = nickname ?? "Anonymous";
        Console.WriteLine($"{displayName} ({displayName.Length})");
    }
}
Результат выполнения
Anonymous (9)

Практика с отладчиком

Поставьте точку останова на важное присваивание или условие, нажмите Debug и посмотрите локальные значения, прежде чем перейти к следующей строке.