С# — широко используемый язык программирования, предназначенный для создания эффективных и надежных приложений для различных платформ. Язык имеет множество дополнительных функций, в том числе нулевой оператор объединения , который помогает упростить сложный код, предоставляя компактный синтаксис для обработки нулевых значений. Этот оператор стал популярным среди разработчиков, ищущих простой метод для обработки нулевой ценности в своих проектах.
В этой статье будет подробно рассказано о нулевой оператор объединения .
Что такое нулевой оператор объединения в C#
В C# символ для нулевой оператор объединения является ?? . Если переменная имеет значение null, она используется для присвоения ей значения по умолчанию.
Например, если у нас есть переменная Икс который может быть нулевым, и мы хотим присвоить ему значение по умолчанию 10, если оно равно нулю, мы можем использовать нулевой оператор объединения следующее:
интервал у = х ?? 10
Этот оператор присвоит значение 10 на y, если x равно null, в противном случае он примет значение x.
Он вернет значение левого операнда, если оно не равно нулю. Проверяется правый операнд и возвращается результат, если он равен нулю. В качестве альтернативы, если левый операнд оценивается как ненулевой, он не оценивает свой правый операнд.
Традиционный способ написания кода без нулевой оператор объединения является:
если ( результат нулевой )возвращаться новый список < Человек > ( ) ;
возвращаться результат;
Мы можем сжать это в одну строку, содержащую как ненулевое значение по умолчанию, так и нулевую проверку, используя нулевой оператор объединения :
возвращаться результат ?? новый список < Человек > ( ) ;
Некоторые важные моменты, о которых следует помнить нулевой оператор объединения являются:
- Переменная должна быть левым операндом ?? оператор.
- Левый операнд оператора ??= не может быть ненулевым типом.
- Оператор объединения с нулевым значением не может быть перегружен.
- Оператор объединения с нулевым значением является правоассоциативным. Это означает, что такое выражение, как a ??= b ??= c, будет оцениваться как a ??= (b ??= c).
Использование нулевого оператора объединения
Использование нулевой оператор объединения являются:
- Предоставление значений по умолчанию
- Как избежать исключений нулевой ссылки
- Удаление избыточных условий if-else
1: Предоставление значений по умолчанию
При работе с типами, допускающими значение null, если значение равно null, вы можете использовать метод нулевой оператор объединения чтобы предоставить значение по умолчанию вместо создания исключения.
с помощью системы;Программа публичного класса
{
public static void Основной ( )
{
инт? нулевое значение = ноль;
int значение = nullableValue ?? 10 ;
Console.WriteLine ( 'Ценность:' + значение ) ;
}
}
В приведенном выше примере мы определяем целое число nullableValue переменной и присвойте ей нулевое значение. нулевой оператор объединения затем используется для предоставления переменной value значения по умолчанию, равного 10, если nullableValue равно null. Далее значение выводится на консоль.
2: Избегайте исключений нулевой ссылки
Нулевые значения могут привести к возникновению нулевых ссылок при работе со сложными структурами данных, такими как объекты и массивы. Этих исключений можно избежать, используя нулевой оператор объединения , который предоставляет значения по умолчанию.
с помощью системы;открытый класс мой класс
{
общедоступная строка Имя { получать; набор ; }
общедоступный внутренний идентификатор { получать; набор ; }
}
Программа публичного класса
{
public static void Основной ( )
{
мой класс человек = ноль;
строка имя = человек?.Имя ?? 'Неизвестный' ;
инт идентификатор = человек?.ID ?? 0 ;
Console.WriteLine ( 'Имя: ' + имя ) ;
Console.WriteLine ( 'ИДЕНТИФИКАТОР: ' + идентификатор ) ;
}
}
Имя и ИДЕНТИФИКАТОР являются атрибутами мои занятия класс в приведенном выше коде. Для безопасного доступа к Имя и ИДЕНТИФИКАТОР свойств объекта person и предоставляет значения по умолчанию, если они равны нулю, он устанавливает переменную person в значение null, а затем использует условный оператор null (?.) и оператор нулевой оператор объединения (??). Затем консоль выводится со значениями имени и идентификатора.
3: Удаление избыточных условий if-else
Вы также можете использовать оператор объединения null, чтобы сделать свой код более кратким и читабельным, убрав необходимость в избыточных если-иначе условия .
Например:
с помощью системы;пример пространства имен
{
класс мой класс
{
статическая пустота Главная ( нить [ ] аргументы )
{
инт? нулевое значение = ноль;
целое значение;
если ( nullableValue ! = ноль )
{
значение = nullableValue.Value;
}
еще
{
значение = 10 ;
}
Console.WriteLine ( 'Ценность:' + значение ) ;
}
}
}
В приведенном выше коде оператор объединения null ?? используется для присвоения значения nullableValue оценивать. Если nullableValue не является нулевым, то значение будет иметь то же значение, что и nullableValue . Если nullableValue равно null, значение будет равно 10. если еще условие больше не требуется, а код стал короче и легче для понимания.
Заключение
нулевой оператор объединения в C# — это мощная функция, упрощающая обработку разработчиками нулевых значений в своих проектах. Этот оператор обеспечивает компактный, эффективный и гибкий синтаксис для присвоения значений по умолчанию переменным, которые могут быть нулевыми. С помощью нулевой оператор объединения , разработчики могут писать более читаемый, удобный в сопровождении и эффективный код, экономя время и усилия в процессе разработки.