Шта је нулл коалесцинг оператор у Ц#

Sta Je Null Koalescing Operator U C



Ц# је широко коришћен програмски језик дизајниран да креира ефикасне и робусне апликације за различите платформе. Језик има много напредних функција, укључујући нулти коалесцентни оператор , што помаже у поједностављивању сложеног кода обезбеђивањем компактне синтаксе за руковање нултим вредностима. Овај оператер је постао популаран међу програмерима који траже једноставан метод за руковање нула вредности у својим пројектима.

Овај чланак ће се детаљно бавити нулти коалесцентни оператор .







Шта је нулл коалесцинг оператор у Ц#

У Ц#, симбол за нулти коалесцентни оператор је ?? . Ако је променљива нулл, она се користи да јој се додели подразумевана вредност.



На пример, ако имамо променљиву Икс то може бити нулл и желимо да му доделимо подразумевану вредност од 10 ако је нулл, можемо користити нулти коалесцентни оператор као што следи:



инт и = к ?? 10





Ова изјава ће доделити вредност 10 на и ако је к нула, у супротном ће узети вредност к.

Вратиће вредност левог операнда ако није нула. Десноруки операнд се испитује и резултат се враћа ако је нулл. Алтернативно, ако леви операнд има вредност која није нула, он не оцењује свој десни операнд.



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

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

повратак нова листа < Особа > ( ) ;

повратак резултат;

Ово можемо сажети у један ред који садржи и подразумевану вредност која није нулта и нулту проверу користећи нулти коалесцентни оператор :

повратак резултат ?? нова листа < Особа > ( ) ;

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

  • Променљива мора бити леви операнд ?? оператер.
  • Леви операнд оператора ??= не може бити тип који није нуллабле.
  • Оператор за спајање нуле не може се преоптеретити.
  • Оператор спајања нуле је десно асоцијативан. То значи да ће израз као што је ??= б ??= ц бити процењен као ??= (б ??= ц).

Употреба нулте коалесцентног оператора

Користи од нулти коалесцентни оператор су:

1: Обезбеђивање подразумеваних вредности

Када радите са нулл типовима, ако је вредност нулл, можете користити нулти коалесцентни оператор да обезбеди подразумевану вредност уместо избацивања изузетка.

коришћење система;

Програм јавног часа
{
јавна статичка празнина Главна ( )
{
инт? нуллаблеВалуе = нулл;
инт вредност = нуллаблеВалуе ?? 10 ;
Цонсоле.ВритеЛине ( 'Вредност је: ' + вредност ) ;
}
}

У горњем примеру дефинишемо цео број нуллаблеВалуе променљиву и дати јој вредност нула. Тхе нулти коалесцентни оператор се затим користи да променљивој вредности обезбеди подразумевану вредност од 10 ако је нуллаблеВалуе нулта. Затим се вредност приказује на конзоли.

2: Избегавање изузетака нултих референци

Нулл вредности могу довести до изузетака нулте референци када радите са софистицираним структурама података као што су објекти и низови. Ови изузеци се могу избећи коришћењем нулти коалесцентни оператор , који даје подразумеване вредности.

коришћење система;

јавна класа миЦласс
{
јавни стринг Име { добити; комплет ; }
јавни инт ИД { добити; комплет ; }
}
Програм јавног часа
{
јавна статичка празнина Главна ( )
{
миЦласс персон = нулл;
стринг наме = персон?.Наме ?? 'Непознат' ;
инт ид = особа?.ИД ?? 0 ;
Цонсоле.ВритеЛине ( 'Име: ' + име ) ;
Цонсоле.ВритеЛине ( 'ИД: ' + ид ) ;
}
}

Име и ИД су атрибути мој разред класе у коду изнад. Да бисте безбедно приступили Име и ИД својства објекта персон и доставља подразумеване вредности ако су нулте, поставља променљиву персон на нулл, а затим користи нулл условни оператор (?.) и нулти коалесцентни оператор (??). Затим се конзола штампа са вредностима имена и ид-а.

3: Уклањање сувишних услова иф-елсе

Такође можете да користите нулл коалесцинг оператор да учините свој код концизнијим и читљивијим уклањањем потребе за сувишним ако-иначе услови .

На пример:

коришћење система;

именски простор Пример
{
цласс миЦласс
{
статичка празнина Главна ( низ [ ] аргс )
{
инт? нуллаблеВалуе = нулл;
инт вредност;
ако ( нуллаблеВалуе ! = нулл )
{
вредност = нуллаблеВалуе.Валуе;
}
друго
{
вредност = 10 ;
}
Цонсоле.ВритеЛине ( 'Вредност је: ' + вредност ) ;
}
}
}

У коду изнад, нулл коалесцинг оператор ?? се користи за додељивање вредности нуллаблеВалуе на вредност. Ако нуллаблеВалуе није нулл, онда ће вредност имати исту вредност као нуллаблеВалуе . Ако нуллаблеВалуе је нула, тада ће вредност имати вредност 10. Тхе ако друго услов више није потребан, а код је сада краћи и лакши за разумевање.

Закључак

Тхе нулти коалесцентни оператор у Ц# је моћна карактеристика која поједностављује начин на који програмери рукују нултим вредностима у својим пројектима. Овај оператор обезбеђује компактну, ефикасну и флексибилну синтаксу за додељивање подразумеваних вредности променљивим које могу бити нулте. Коришћењем нулти коалесцентни оператор , програмери могу писати читљивији, одрживији и ефикаснији код, штедећи време и труд у процесу развоја.