Clik here to view.

Hace algunos años hablábamos de que la forma más correcta de determinar si un objeto es nulo en C# era utilizando el operador is
:
var invoice = _invoiceRepository.GetById(18);
if(invoice is null)
{
// Hacer algo
}
Como vimos en su momento, esta opción era mejor que utilizar una comparación directa como invoice == null
porque el operador de igualdad podía ser sobrecargado y, por tanto, su comportamiento podría ser modificado, mientras que el operador is
no es sobrecargable.
Sin embargo, al comenzar al usar esta fórmula, encontrábamos un pequeño inconveniente cuando queríamos determinar justo lo contrario, es decir, saber cuándo un objeto no es nulo, pues la sintaxis se volvía algo más pesada:
var invoice = _invoiceRepository.GetById(18);
if(!(invoice is null))
{
// Hacer algo
}
La introducción de los patrones de combinación
and
, or
y not
de C# 9 nos ponen la cosa bastante más sencilla. Cuando usamos esta versión del lenguaje, podemos expresar esa comparación con algo tan elegante como lo siguiente:var invoice = _invoiceRepository.GetById(18);
if(invoice is not null)
{
// Hacer algo
}
Recordad que C#9 es el usado por defecto en proyectos .NET 5, pero también podemos utilizarlo con versiones anteriores de .NET Core o .NET Framework si estamos utilizando una versión actualizada de Visual Studio y configuramos el proyecto para que use la última versión disponible, bien desde el cuadro de diálogo Propiedades del Proyecto > Build > Advanced, o bien añadiendo al .csproj
las siguientes líneas:
<Project ...>
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
...
</Project>
Aparte, estos patrones de combinación pueden ser utilizados en otros escenarios. Los veremos más adelante, en un post donde profundizaremos en ello :)
Publicado en Variable not found.
Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.
