Co je Null Coalescing Operator v C#

Co Je Null Coalescing Operator V C



C# je široce používaný programovací jazyk určený k vytváření efektivních a robustních aplikací pro různé platformy. Jazyk má mnoho pokročilých funkcí, včetně nulový koalescenční operátor , který pomáhá zjednodušit složitý kód tím, že poskytuje kompaktní syntaxi pro zpracování hodnot null. Tento operátor se stal oblíbeným mezi vývojáři, kteří hledají přímočarý způsob ovládání nula hodnoty ve svých projektech.

Tento článek se bude podrobně zabývat nulový koalescenční operátor .







Co je nulový koalescenční operátor v C#

V C#, symbol pro nulový koalescenční operátor je ?? . Pokud má proměnná hodnotu null, použije se k přidělení výchozí hodnoty.



Například pokud máme proměnnou X který může být null a chceme mu přiřadit výchozí hodnotu 10, pokud je null, můžeme použít nulový koalescenční operátor jak následuje:



int y = x ?? 10





Tento příkaz přiřadí hodnotu 10 na y, pokud je x nulové, jinak bude mít hodnotu x.

Pokud není null, vrátí hodnotu levého operandu. Pravostranný operand je zkoumán a výsledek je vrácen, pokud je null. Alternativně, pokud se levý operand vyhodnotí jako nenulový, nevyhodnotí svůj pravý operand.



Tradiční způsob psaní kódu bez nulový koalescenční operátor je:

-li ( výsledek je nulový )

vrátit se nový Seznam < Osoba > ( ) ;

vrátit se výsledek;

Můžeme to zkrátit na jeden řádek, který obsahuje jak nenulovou výchozí hodnotu, tak nulovou kontrolu pomocí nulový koalescenční operátor :

vrátit se výsledek ?? nový Seznam < Osoba > ( ) ;

Několik důležitých bodů, které je třeba mít na paměti nulový koalescenční operátor jsou:

  • Proměnná musí být levým operandem ?? operátor.
  • Levý operand operátoru ??= nemůže být typu bez možnosti null.
  • Operátor null-coalescing nelze přetížit.
  • Nulové koalescenční operátory jsou asociativní vpravo. To znamená, že výraz jako a ??= b ??= c bude vyhodnocen jako a ??= (b ??= c).

Použití operátoru Null Coalescing Operator

Použití nulový koalescenční operátor jsou:

1: Poskytování výchozích hodnot

Při práci s typy s možnou hodnotou Null, pokud je hodnota null, můžete použít nulový koalescenční operátor poskytnout výchozí hodnotu namísto vyvolání výjimky.

pomocí systému;

Program veřejné třídy
{
public static void Main ( )
{
int? nullableValue = null;
int hodnota = nullableValue ?? 10 ;
Console.WriteLine ( 'Hodnota je:' + hodnota ) ;
}
}

Ve výše uvedeném příkladu definujeme celé číslo nullableValue proměnnou a přiřaďte jí hodnotu nula. The nulový koalescenční operátor se pak použije k poskytnutí výchozí hodnoty proměnné value 10, pokud je hodnota nullableValue null. Dále se hodnota zobrazí na konzole.

2: Vyhýbání se výjimkám nulové reference

Hodnoty Null mohou vést k výjimkám null reference při práci se sofistikovanými datovými strukturami, jako jsou objekty a pole. Těmto výjimkám se lze vyhnout pomocí nulový koalescenční operátor , který poskytuje výchozí hodnoty.

pomocí systému;

veřejná třída myClass
{
veřejný řetězec Jméno { dostat; soubor ; }
veřejné int ID { dostat; soubor ; }
}
Program veřejné třídy
{
public static void Main ( )
{
osoba myClass = null;
řetězec jméno = osoba?.Jméno ?? 'Neznámý' ;
int id = osoba?.ID ?? 0 ;
Console.WriteLine ( 'Název: ' + jméno ) ;
Console.WriteLine ( 'ID:' + id ) ;
}
}

název a ID jsou atributy moje třída třídy v kódu výše. Pro bezpečný přístup k název a ID vlastnosti objektu person a dodají výchozí hodnoty, pokud jsou null, nastaví proměnnou person na null a poté použije podmíněný operátor null (?.) a nulový koalescenční operátor (??). Poté se vytiskne konzola s hodnotami názvu a id.

3: Odstranění nadbytečných podmínek, pokud existují

Můžete také použít operátor null coalescing, aby byl váš kód stručnější a čitelnější odstraněním potřeby redundantních if-other podmínky .

Například:

pomocí systému;

jmenný prostor Příklad
{
třída myClass
{
statické prázdno Hlavní ( tětiva [ ] argumenty )
{
int? nullableValue = null;
int hodnota;
-li ( nullableValue ! = null )
{
hodnota = nullableValue.Value;
}
jiný
{
hodnota = 10 ;
}
Console.WriteLine ( 'Hodnota je:' + hodnota ) ;
}
}
}

Ve výše uvedeném kódu se jedná o nulový slučovací operátor ?? se používá k přiřazení hodnoty nullableValue ocenit. Li nullableValue není null, pak bude mít hodnota stejnou hodnotu jako nullableValue . Li nullableValue je null, pak hodnota bude mít hodnotu 10. The pokud-jinak podmínka již není vyžadována a kód je nyní kratší a snáze srozumitelný.

Závěr

The nulový koalescenční operátor v C# je výkonná funkce, která zjednodušuje způsob, jakým vývojáři nakládají s nulovými hodnotami ve svých projektech. Tento operátor poskytuje kompaktní, efektivní a flexibilní syntaxi pro přiřazení výchozích hodnot proměnným, které mohou mít hodnotu null. Pomocí nulový koalescenční operátor , mohou vývojáři psát čitelnější, udržovatelnější a efektivnější kód, což šetří čas a úsilí v procesu vývoje.