Što je Null Coalescing Operator u C#

Sto Je Null Coalescing Operator U C



C# široko je korišten programski jezik dizajniran za stvaranje učinkovitih i robusnih aplikacija za različite platforme. Jezik ima mnogo naprednih značajki, uključujući nulti operator spajanja , koji pomaže pojednostaviti složeni kod pružajući kompaktnu sintaksu za rukovanje null vrijednostima. Ovaj je operator postao popularan među programerima koji traže jednostavnu metodu za rukovanje ništavan vrijednosti u svojim projektima.

Ovaj članak će detaljno govoriti o nulti operator spajanja .







Što je null koalescentni operator u C#

U C#, simbol za nulti operator spajanja je ?? . Ako je varijabla null, koristi se za davanje zadane vrijednosti.



Na primjer, ako imamo varijablu x koji može biti null i želimo mu dodijeliti zadanu vrijednost 10 ako je null, možemo koristiti nulti operator spajanja kako slijedi:



int y = x ?? 10





Ova izjava će dodijeliti vrijednost 10 na y ako je x null, inače će uzeti vrijednost x.

Vratit će vrijednost lijevog operanda ako nije null. Ispituje se desni operand i vraća se rezultat ako je nula. Alternativno, ako se lijevi operand ocijeni kao ne-null, on ne vrednuje svoj desni operand.



Tradicionalni način pisanja koda bez nulti operator spajanja je:

ako ( rezultat je nula )

povratak novi popis < Osoba > ( ) ;

povratak proizlaziti;

To možemo sažeti u jedan redak koji sadrži i zadanu vrijednost koja nije null i null provjeru pomoću nulti operator spajanja :

povratak rezultat?? novi popis < Osoba > ( ) ;

Treba zapamtiti neke važne točke nulti operator spajanja su:

  • Varijabla mora biti lijevi operand od ?? operater.
  • Lijevi operand operatora ??= ne može biti tip koji ne može biti NULL.
  • Operator spajanja nule ne može se preopteretiti.
  • Operator spajanja nule je desno asocijativan. To znači da će izraz kao što je ??= b ??= c biti procijenjen kao ??= (b ??= c).

Upotreba nultog operatora spajanja

Upotreba nulti operator spajanja su:

1: Pružanje zadanih vrijednosti

Kada radite s tipovima koji mogu biti null, ako je vrijednost null, možete koristiti nulti operator spajanja za pružanje zadane vrijednosti umjesto izbacivanja iznimke.

korištenje sustava;

javna klasa Program
{
public static void Main ( )
{
int? nullableValue = null;
int vrijednost = nullableValue ?? 10 ;
Konzola.WriteLine ( 'Vrijednost je: ' + vrijednost ) ;
}
}

U gornjem primjeru definiramo cijeli broj nullableValue varijablu i dajte joj vrijednost nula. The nulti operator spajanja se zatim koristi za pružanje varijable vrijednosti zadane vrijednosti 10 ako je nullableValue null. Zatim se vrijednost prikazuje na konzoli.

2: Izbjegavanje iznimaka nulte reference

Null vrijednosti mogu rezultirati iznimkama null reference pri radu sa sofisticiranim strukturama podataka kao što su objekti i polja. Ove se iznimke mogu izbjeći korištenjem nulti operator spajanja , koji daje zadane vrijednosti.

korištenje sustava;

javna klasa myClass
{
javni niz Naziv { dobiti; postaviti ; }
javni int ID { dobiti; postaviti ; }
}
javna klasa Program
{
public static void Main ( )
{
myClass osoba = null;
ime niza = osoba?.Ime ?? 'Nepoznato' ;
int iskaznica = osoba?.ID ?? 0 ;
Konzola.WriteLine ( 'Ime: ' + ime ) ;
Konzola.WriteLine ( 'ISKAZNICA: ' + iskaznica ) ;
}
}

Ime i iskaznica atributi su moj razred klase u gornjem kodu. Kako biste sigurno pristupili Ime i iskaznica svojstva objekta osobe i daje zadane vrijednosti ako su null, postavlja varijablu osobe na null, a zatim koristi uvjetni operator null (?.) i nulti operator spajanja (??). Zatim se konzola ispisuje s vrijednostima imena i id-a.

3: Uklanjanje suvišnih if-else uvjeta

Također možete koristiti operator spajanja nulte vrijednosti kako biste svoj kod učinili sažetijim i čitljivijim uklanjanjem potrebe za suvišnim if-else uvjeti .

Na primjer:

korištenje sustava;

imenski prostor Primjer
{
razred mojRazred
{
statička praznina Glavni ( niz [ ] args )
{
int? nullableValue = null;
int vrijednost;
ako ( nullableValue ! = nula )
{
vrijednost = nullableValue.Value;
}
drugo
{
vrijednost = 10 ;
}
Konzola.WriteLine ( 'Vrijednost je: ' + vrijednost ) ;
}
}
}

U gornjem kodu, nulti operator spajanja ?? koristi se za dodjeljivanje vrijednosti nullableValue cijeniti. Ako nullableValue nije null, tada će vrijednost imati istu vrijednost kao nullableValue . Ako nullableValue je null, tada će vrijednost imati vrijednost 10. The ako-drugače uvjet više nije potreban, a kôd je sada kraći i lakši za razumijevanje.

Zaključak

The nulti operator spajanja u C# je moćna značajka koja pojednostavljuje način na koji programeri obrađuju null vrijednosti u svojim projektima. Ovaj operator pruža kompaktnu, učinkovitu i fleksibilnu sintaksu za dodjeljivanje zadanih vrijednosti varijablama koje mogu biti null. Korištenjem nulti operator spajanja , programeri mogu pisati čitljiviji, održiviji i učinkovitiji kod, štedeći vrijeme i trud u procesu razvoja.