76 lines
1.7 KiB
Markdown
76 lines
1.7 KiB
Markdown
---
|
|
title: Null-coalescing Operator
|
|
localeTitle: Operador de fusión nula
|
|
---
|
|
# Operador de fusión nula
|
|
|
|
El operador de unión nula en C # se usa para ayudar a asignar una variable a otra y especificar un valor alternativo si el valor de origen es `null` . El operador de unión nula en C # es `??` .
|
|
|
|
## Ejemplo 1
|
|
|
|
Como el `name` es `null` , a `clientName` se le asignará el valor "John Doe".
|
|
|
|
```cs
|
|
string name = null;
|
|
|
|
string clientName = name ?? "John Doe";
|
|
|
|
Console.WriteLine(clientName);
|
|
```
|
|
|
|
```cs
|
|
> John Doe
|
|
```
|
|
|
|
## Ejemplo 2
|
|
|
|
Dado que el `name` no es `null` , a `clientName` se le asignará el valor de `name` , que es "Jane Smith".
|
|
|
|
```cs
|
|
string name = "Jane Smith";
|
|
|
|
string clientName = name ?? "John Doe";
|
|
|
|
Console.WriteLine(clientName);
|
|
```
|
|
|
|
```cs
|
|
> Jane Smith
|
|
```
|
|
|
|
## Alternativa a if ... else Declaración
|
|
|
|
Podría usar una instrucción `if...else` para probar la presencia de `null` y asignar un valor diferente.
|
|
|
|
```cs
|
|
string clientName;
|
|
|
|
if (name != null)
|
|
clientName = name;
|
|
else
|
|
clientName = "John Doe";
|
|
```
|
|
|
|
Sin embargo, esto puede simplificarse enormemente utilizando el operador de fusión nula.
|
|
|
|
```cs
|
|
string clientName = name ?? "John Doe";
|
|
```
|
|
|
|
## Alternativa al operador condicional (ternario)
|
|
|
|
También es posible utilizar el operador condicional para probar la presencia de `null` y asignar un valor diferente.
|
|
|
|
```cs
|
|
string clientName = name != null ? name : "John Doe";
|
|
```
|
|
|
|
De nuevo, esto se puede simplificar utilizando el operador de unión nula.
|
|
|
|
```cs
|
|
string clientName = name ?? "John Doe";
|
|
```
|
|
|
|
## Referencias
|
|
|
|
* [?? Operador (Referencia C #)](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-conditional-operator) |