TOC

This article has been localized into Russian by the community.

Операторы:

Оператор объединения NULL

Оператор ?? также называется "объединяющим нулем оператором", так как он позволяет проверить наличие нулевого значения и назначить резервное значение в одной строке кода. Это может показаться тривиальным без этого оператора, но рассмотрим следующий пример:

string userSuppliedName = null; 

if (userSuppliedName == null)
    Console.WriteLine("Hello, Anonymous!");
else
    Console.WriteLine("Hello," + userSuppliedName);

Вы должны думать о переменной userSuppliedName как о чем - то, что исходит от пользователя, например, из диалогового окна или файла данных-то, что может привести к значению NULL. Мы должны иметь дело с этим, проверяя значение перед его использованием, в этом случае для отображения имени пользователю.

В предыдущем примере мы используем классический подход if-else, но с объединяющим нулевым оператором это можно сделать гораздо короче, одной строкой:

Console.WriteLine("Hello, " + (userSuppliedName ?? "Anonymous")); 

В одном операторе мы просим интерпретатор использовать переменную userSuppliedName, если она имеет значение – если нет, мы предоставляем резервное значение, в данном случае имя"Anonymous". Коротко и просто!

Резюме

Как и со всем "синтаксическим сахаром", подобно оператору объединения нулей, это всегда компромисс между краткостью и удобочитаемостью кода. Некоторые считают, что эти операторы затрудняют чтение и навигацию по коду, в то время как другим нравится, насколько он короткий и простой. В конце концов, все зависит от вас!


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!