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:
- Pružanje zadanih vrijednosti
- Izbjegavanje iznimaka nulte reference
- Uklanjanje suvišnih if-else uvjeta
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.