Kaj je Null Coalescing Operator v C#

Kaj Je Null Coalescing Operator V C



C# je široko uporabljen programski jezik, zasnovan za ustvarjanje učinkovitih in robustnih aplikacij za različne platforme. Jezik ima številne napredne funkcije, vključno z ničelni koalescentni operator , ki pomaga poenostaviti kompleksno kodo z zagotavljanjem kompaktne sintakse za obravnavanje ničelnih vrednosti. Ta operater je postal priljubljen med razvijalci, ki iščejo preprosto metodo za obravnavo nič vrednote v svojih projektih.

Ta članek bo podrobno obravnaval ničelni koalescentni operator .







Kaj je ničelni koalescentni operator v C#

V C# je simbol za ničelni koalescentni operator je ?? . Če je spremenljivka ničelna, se uporabi za privzeto vrednost.



Na primer, če imamo spremenljivko x ki je lahko nič in mu želimo dodeliti privzeto vrednost 10, če je nič, lahko uporabimo ničelni koalescentni operator kot sledi:



int y = x ?? 10





Ta izjava bo dodelila vrednost 10 na y, če je x nič, sicer bo prevzel vrednost x.

Vrnil bo vrednost levega operanda, če ni ničelna. Desnosučni operand se pregleda in rezultat se vrne, če je nič. Druga možnost je, da če je levi operand ocenjen kot neničelen, ne ovrednoti svojega desnega operanda.



Tradicionalni način pisanja kode brez ničelni koalescentni operator je:

če ( rezultat je nič )

vrnitev nov seznam < Oseba > ( ) ;

vrnitev rezultat;

To lahko strnemo v eno vrstico, ki vsebuje privzeto vrednost, ki ni ničelna, in preverjanje ničelnosti z uporabo ničelni koalescentni operator :

vrnitev rezultat?? nov seznam < Oseba > ( ) ;

Nekaj ​​pomembnih točk, ki si jih morate zapomniti ničelni koalescentni operator so:

  • Spremenljivka mora biti levi operand ?? operater.
  • Levi operand operaterja ??= ne more biti neničelnega tipa.
  • Operatorja ničelnega združevanja ni mogoče preobremeniti.
  • Operator ničelnega združevanja je desno asociativen. To pomeni, da bo izraz, kot je a ??= b ??= c, ovrednoten kot ??= (b ??= c).

Uporaba ničelnega združevalnega operatorja

Uporaba ničelni koalescentni operator so:

1: Zagotavljanje privzetih vrednosti

Če delate s tipi z možnostjo ničelnosti, lahko uporabite vrednost, če je vrednost ničelna ničelni koalescentni operator da zagotovite privzeto vrednost namesto vrženja izjeme.

z uporabo sistema;

program javnega razreda
{
public static void Main ( )
{
int? nullableValue = nič;
int vrednost = nullableValue ?? 10 ;
Console.WriteLine ( 'Vrednost je:' + vrednost ) ;
}
}

V zgornjem primeru definiramo celo število nullableValue spremenljivko in ji dajte vrednost nič. The ničelni koalescentni operator se nato uporabi za zagotavljanje spremenljivke vrednosti privzete vrednosti 10, če je nullableValue enaka nič. Nato se vrednost prikaže na konzoli.

2: Izogibanje izjemam ničelnih sklicev

Ničelne vrednosti lahko povzročijo ničelne referenčne izjeme pri delu s prefinjenimi podatkovnimi strukturami, kot so predmeti in polja. Tem izjemam se je mogoče izogniti z uporabo ničelni koalescentni operator , ki zagotavlja privzete vrednosti.

z uporabo sistema;

javni razred myClass
{
ime javnega niza { dobiti; set ; }
javni int ID { dobiti; set ; }
}
program javnega razreda
{
public static void Main ( )
{
myClass person = null;
ime niza = oseba?.Ime ?? 'neznano' ;
int id = oseba?.ID ?? 0 ;
Console.WriteLine ( 'Ime:' + ime ) ;
Console.WriteLine ( 'ID: ' + id ) ;
}
}

Ime in ID so atributi moj razred razreda v zgornji kodi. Za varen dostop do Ime in ID lastnosti predmeta osebe in zagotovi privzete vrednosti, če so ničelne, nastavi spremenljivko osebe na ničelno vrednost in nato uporabi ničelni pogojni operator (?.) in ničelni operator združevanja (??). Nato se konzola natisne z vrednostmi imena in ID-ja.

3: Odstranjevanje odvečnih pogojev if-else

Uporabite lahko tudi ničelni operator združevanja, da bo vaša koda bolj jedrnata in berljiva, tako da odstranite potrebo po odvečnem pogoji if-else .

Na primer:

z uporabo sistema;

Imenski prostor Primer
{
razred mojRazred
{
statična praznina Main ( vrvica [ ] args )
{
int? nullableValue = nič;
int vrednost;
če ( nullableValue ! = nič )
{
vrednost = nullableValue.Value;
}
drugače
{
vrednost = 10 ;
}
Console.WriteLine ( 'Vrednost je:' + vrednost ) ;
}
}
}

V zgornji kodi operator ničelnega združevanja ?? se uporablja za dodelitev vrednosti nullableValue ceniti. če nullableValue ni ničelna, bo imela vrednost enako vrednost kot nullableValue . če nullableValue je ničelna, potem bo imela vrednost vrednost 10. The če potem pogoj ni več potreben, koda pa je zdaj krajša in lažje razumljiva.

Zaključek

The ničelni koalescentni operator v C# je zmogljiva funkcija, ki poenostavi način, kako razvijalci obravnavajo ničelne vrednosti v svojih projektih. Ta operator zagotavlja kompaktno, učinkovito in prilagodljivo sintakso za dodeljevanje privzetih vrednosti spremenljivkam, ki so lahko ničelne. Z uporabo ničelni koalescentni operator , lahko razvijalci napišejo bolj berljivo, vzdržljivo in učinkovito kodo, s čimer prihranijo čas in trud v razvojnem procesu.