Skip to content

RU CSharp Nullability

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

null, nullable-типы и проверки

Руководство C# · Примеры UO

T? для типа значения допускает отсутствие значения, например int?. Nullable-аннотации ссылочных типов помогают компилятору находить потенциальное обращение к null; они не добавляют автоматическую runtime-проверку. ?. выполняет условный доступ, ?? задаёт замену, ??= присваивает при null.

Простой пример (Example.cs)

Сохраните этот пример отдельно как Example.cs. Запускайте его независимо от остальных примеров страницы.

Example.cs:

// PROJECT-EXAMPLE
string? name = null;
System.Console.WriteLine(name ?? "Unknown");

Результат:

Unknown
string? name = null;
string display = name ?? "unknown";
int length = name?.Length ?? 0;
UO.Print($"{display}: {length}");
int? amount = null;
amount ??= 1;
if (amount is int value)
{
    UO.Print(value.ToString());
}

Оператор ! подавляет предупреждение анализа null, но не предотвращает исключение. Для nullable-типа значения проверяйте HasValue, используйте шаблон или GetValueOrDefault. Отсутствующий объект и числовой ноль — разные состояния.

Официальная документация: null, nullable-типы и проверки — Microsoft Learn.

Clone this wiki locally