C# 8.0 – Specification – Null coalescing assignment
Índice general – C# 8.0 – Specification
En esta ocasión, Microsoft ha introducido una forma de hacer algo que ya veníamos haciendo.
Se trata de «preguntar» si un determinado valor es null o no.
No es como verás a continuación un gran aporte, pero conviene que lo comentemos para que lo tengamos presente si lo vemos.
Método 1 (tradicional)
El método tradicional de realizar esto y que usábamos y seguimos usando en C#.
Consiste en preguntar por null directamente.
private static void NullCoalescingAssignment() { string variable = null; // Method 1 if (variable == null) { variable = String.Empty; } Console.WriteLine($"{nameof(variable)} => {variable}"); }
Método 2 (también comúnmente utilizado)
Ahora bien, existe otro método para preguntar si un valor es null o no y que también solemos utilizar cuando trabajamos en C#.
Consiste en usar ??:
private static void NullCoalescingAssignment() { string variable = null; // Method 2 variable = variable ?? String.Empty; Console.WriteLine($"{nameof(variable)} => {variable}"); }
Método 3 (nuevo introducido en C# 8.0)
Y ahora, Microsoft introduce una nueva forma de realizar lo mismo y que nos ahorra un poco de código, y no es otra que una autoasignación directa a la hora de preguntar si un determinado valor es null o no.
Consiste en usar ??=.
private static void NullCoalescingAssignment() { string variable = null; // Method 3 (new) variable ??= String.Empty; Console.WriteLine($"{nameof(variable)} => {variable}"); }
Como podemos apreciar, no es ni mucho menos algo muy relevante de cara al lenguaje, pero es bueno saber que tenemos la posibilidad de utilizar esta expresión.
Happy Coding!