Čo je operátor Null Coalescing Operator v C#

Co Je Operator Null Coalescing Operator V C



C# je široko používaný programovací jazyk určený na vytváranie efektívnych a robustných aplikácií pre rôzne platformy. Jazyk má mnoho pokročilých funkcií, vrátane nulový koalescenčný operátor , ktorý pomáha zjednodušiť zložitý kód poskytnutím kompaktnej syntaxe na spracovanie hodnôt null. Tento operátor sa stal populárnym medzi vývojármi, ktorí hľadajú jednoduchý spôsob, ako ho zvládnuť nulový hodnoty vo svojich projektoch.

Tento článok sa bude podrobne zaoberať nulový koalescenčný operátor .







Čo je operátor Null Coalescing Operator v C#

V C# je to symbol pre nulový koalescenčný operátor je ?? . Ak má premenná hodnotu null, použije sa na pridelenie predvolenej hodnoty.



Napríklad, ak máme premennú X ktorý môže byť null a chceme mu priradiť predvolenú hodnotu 10, ak je null, môžeme použiť nulový koalescenčný operátor nasledovne:



int y = x ?? 10





Tento príkaz priradí hodnotu 10 na y, ak je x nulové, inak bude mať hodnotu x.

Ak nie je null, vráti hodnotu ľavého operandu. Pravý operand sa preskúma a výsledok sa vráti, ak je nulový. Prípadne, ak sa ľavý operand vyhodnotí ako nenulový, nevyhodnotí sa jeho pravý operand.



Tradičný spôsob písania kódu bez nulový koalescenčný operátor je:

ak ( výsledok je nulový )

vrátiť nový zoznam < Osoba > ( ) ;

vrátiť výsledok;

Môžeme to zhustiť na jeden riadok, ktorý obsahuje nenulovú predvolenú hodnotu aj nulovú kontrolu pomocou nulový koalescenčný operátor :

vrátiť výsledok?? nový zoznam < Osoba > ( ) ;

Niektoré dôležité body, ktoré si treba zapamätať nulový koalescenčný operátor sú:

  • Premenná musí byť ľavým operandom ?? operátor.
  • Ľavý operand operátora ??= nemôže byť typu bez možnosti null.
  • Operátor null-coalescing nemôže byť preťažený.
  • Nulové koalescenčné operátory sú asociatívne vpravo. To znamená, že výraz ako a ??= b ??= c bude vyhodnotený ako a ??= (b ??= c).

Použitie operátora Null Coalescing Operator

Využitie nulový koalescenčný operátor sú:

1: Poskytnutie predvolených hodnôt

Pri práci s typmi s možnosťou null, ak je hodnota null, môžete použiť nulový koalescenčný operátor poskytnúť predvolenú hodnotu namiesto vyvolania výnimky.

pomocou systému;

Program verejnej triedy
{
verejné statické neplatné Hlavné ( )
{
int? nullableValue = null;
int hodnota = nullableValue ?? 10 ;
Console.WriteLine ( 'Hodnota je:' + hodnota ) ;
}
}

Vo vyššie uvedenom príklade definujeme celé číslo nullableValue premennej a priraďte jej hodnotu nula. The nulový koalescenčný operátor sa potom použije na poskytnutie predvolenej hodnoty premennej hodnoty 10, ak je hodnota nullableValue null. Potom sa hodnota zobrazí na konzole.

2: Vyhýbanie sa nulovým referenčným výnimkám

Hodnoty null môžu viesť k výnimkám nulových odkazov pri práci so sofistikovanými dátovými štruktúrami, ako sú objekty a polia. Týmto výnimkám sa možno vyhnúť použitím nulový koalescenčný operátor , ktorý poskytuje predvolené hodnoty.

pomocou systému;

verejná trieda myClass
{
verejný reťazec Názov { dostať; nastaviť ; }
verejné int ID { dostať; nastaviť ; }
}
Program verejnej triedy
{
verejné statické neplatné Hlavné ( )
{
osoba myClass = null;
string meno = osoba?.Meno ?? 'neznámy' ;
int id = osoba?.ID ?? 0 ;
Console.WriteLine ( 'Názov: ' + meno ) ;
Console.WriteLine ( 'ID: ' + id ) ;
}
}

názov a ID sú atribúty moja trieda triedy v kóde vyššie. Pre bezpečný prístup k názov a ID vlastnosti objektu person a dodajú predvolené hodnoty, ak sú null, nastaví premennú person na hodnotu null a potom použije podmienený operátor null (?.) a nulový koalescenčný operátor (??). Potom sa konzola vytlačí s hodnotami názvu a id.

3: Odstránenie nadbytočných podmienok, ak sú iné

Môžete tiež použiť operátor null coalescing, aby bol váš kód stručnejší a čitateľnejší odstránením potreby nadbytočných ak sú iné podmienky .

Napríklad:

pomocou systému;

Príklad menného priestoru
{
trieda mojaTrieda
{
static void Main ( reťazec [ ] args )
{
int? nullableValue = null;
int hodnota;
ak ( nullableValue ! = null )
{
hodnota = nullableValue.Value;
}
inak
{
hodnota = 10 ;
}
Console.WriteLine ( 'Hodnota je:' + hodnota ) ;
}
}
}

Vo vyššie uvedenom kóde je to nulový operátor koalescencie ?? sa používa na priradenie hodnoty nullableValue ohodnotiť. Ak nullableValue nie je null, potom hodnota bude mať rovnakú hodnotu ako nullableValue . Ak nullableValue je null, potom hodnota bude mať hodnotu 10. The ak-inak Podmienka už nie je potrebná a kód je teraz kratší a ľahšie pochopiteľný.

Záver

The nulový koalescenčný operátor v C# je výkonná funkcia, ktorá zjednodušuje spôsob, akým vývojári narábajú s nulovými hodnotami vo svojich projektoch. Tento operátor poskytuje kompaktnú, efektívnu a flexibilnú syntax na priradenie predvolených hodnôt premenným, ktoré môžu byť nulové. Pomocou nulový koalescenčný operátor , vývojári môžu písať čitateľnejší, udržiavateľnejší a efektívnejší kód, čím šetria čas a námahu v procese vývoja.