Какво е нулев коалесцентен оператор в C#

Kakvo E Nulev Koalescenten Operator V C



° С# е широко използван език за програмиране, предназначен да създава ефективни и стабилни приложения за различни платформи. Езикът има много разширени функции, включително нулев коалесцентен оператор , което помага за опростяване на сложния код чрез предоставяне на компактен синтаксис за обработка на нулеви стойности. Този оператор стана популярен сред разработчиците, които търсят лесен метод за работа нула ценности в техните проекти.

Тази статия ще разгледа подробно нулев коалесцентен оператор .







Какво е нулев коалесцентен оператор в C#

В C#, символът за нулев коалесцентен оператор е ?? . Ако една променлива е нула, тя се използва, за да й се даде стойност по подразбиране.



Например, ако имаме променлива х което може да бъде нула и искаме да му присвоим стойност по подразбиране 10, ако е нула, можем да използваме нулев коалесцентен оператор както следва:



int y = x ?? 10





Този израз ще присвои стойността на 10 към y, ако x е нула, в противен случай ще приеме стойността на x.

Той ще върне стойността на левия операнд, ако не е нула. Десният операнд се проверява и резултатът се връща, ако е нулев. Като алтернатива, ако резултатът от левия операнд е различен от нула, той не оценява своя десен операнд.



Традиционният начин за писане на кода без нулев коалесцентен оператор е:

ако ( резултатът е нулев )

връщане нов списък < Лице > ( ) ;

връщане резултат;

Можем да кондензираме това до един ред, който съдържа както ненулевата стойност по подразбиране, така и нулевата проверка, използвайки нулев коалесцентен оператор :

връщане резултат?? нов списък < Лице > ( ) ;

Някои важни точки, които трябва да запомните нулев коалесцентен оператор са:

  • Променливата трябва да бъде левият операнд на ?? оператор.
  • Операндът отляво на оператора ??= не може да бъде ненулев тип.
  • Операторът за нулево обединяване не може да бъде претоварен.
  • Операторът за нулево обединяване е дясно асоциативен. Това означава, че израз като a ??= b ??= c ще бъде оценен като ??= (b ??= c).

Използване на нулев коалесцентен оператор

Използването на нулев коалесцентен оператор са:

1: Предоставяне на стойности по подразбиране

Когато работите с nullable типове, ако стойността е null, можете да използвате нулев коалесцентен оператор за да предостави стойност по подразбиране, вместо да хвърля изключение.

използване на системата;

програма за публичен клас
{
public static void Основен ( )
{
int? nullableValue = нула;
int стойност = nullableValue ?? 10 ;
Console.WriteLine ( „Стойността е:“ + стойност ) ;
}
}

В горния пример ние дефинираме цялото число nullableValue променлива и й придайте стойност нула. The нулев коалесцентен оператор след това се използва, за да предостави на променливата стойност стойност по подразбиране 10, ако nullableValue е null. След това стойността се показва на конзолата.

2: Избягване на изключения за нулеви препратки

Нулевите стойности може да доведат до изключения за нулева препратка при работа със сложни структури от данни като обекти и масиви. Тези изключения могат да бъдат избегнати чрез използване на нулев коалесцентен оператор , който предоставя стойности по подразбиране.

използване на системата;

публичен клас myClass
{
име на публичен низ { получавам; комплект ; }
public int ID { получавам; комплект ; }
}
програма за публичен клас
{
public static void Основен ( )
{
myClass човек = нула;
низ име = човек?.Име ?? 'неизвестен' ;
вътр документ за самоличност = човек?.ID ?? 0 ;
Console.WriteLine ( „Име:“ + име ) ;
Console.WriteLine ( 'ДОКУМЕНТ ЗА САМОЛИЧНОСТ: ' + документ за самоличност ) ;
}
}

Име и документ за самоличност са атрибути на Моят клас клас в кода по-горе. За безопасен достъп до Име и документ за самоличност свойства на обекта person и предоставя стойности по подразбиране, ако те са null, задава променлива person на null и след това използва условния оператор null (?.) и нулев коалесцентен оператор (??). След това конзолата се отпечатва със стойностите на името и id.

3: Премахване на излишните условия if-else

Можете също да използвате оператора за нулево обединяване, за да направите кода си по-сбит и четим, като премахнете необходимостта от излишни if-else условия .

Например:

използване на системата;

пример за пространство от имена
{
клас myClass
{
статична празнота Основна ( низ [ ] аргументи )
{
int? nullableValue = нула;
int стойност;
ако ( nullableValue ! = нула )
{
стойност = nullableValue.Value;
}
друго
{
стойност = 10 ;
}
Console.WriteLine ( „Стойността е:“ + стойност ) ;
}
}
}

В кода по-горе операторът за нулево обединяване ?? се използва за присвояване на стойността на nullableValue да оценявам. Ако nullableValue не е null, тогава стойността ще има същата стойност като nullableValue . Ако nullableValue е нула, тогава стойността ще има стойност 10. The ако-иначе условие вече не се изисква и кодът вече е по-кратък и по-лесен за разбиране.

Заключение

The нулев коалесцентен оператор в C# е мощна функция, която опростява начина, по който разработчиците обработват нулеви стойности в своите проекти. Този оператор осигурява компактен, ефективен и гъвкав синтаксис за присвояване на стойности по подразбиране на променливи, които може да са нулеви. С помощта на нулев коалесцентен оператор , разработчиците могат да пишат по-четлив, поддържаем и ефективен код, спестявайки време и усилия в процеса на разработка.