AYUDA .NET

C# Null Coalescing (Cómo funciona para desarrolladores)

Actualizado 14 de enero, 2024
Compartir:

Introducción

El operador de coalescencia nula ? evalúa el operando derecho y devuelve su resultado si es una referencia no nula; en caso contrario, devuelve el valor de su operando izquierdo. Si el operando de la izquierda evalúa un tipo de valor no anulable, el operador condicional nulo (??) no evalúa su operando en la mano derecha. El operador de asignación ??= que es de coalescencia nula asigna el valor de su operando derecho a su operando izquierdo sólo cuando el operando izquierdo se evalúa a un valor de tipo anulable. Si el operando del lado izquierdo se evalúa como un valor no nulo, el operador de asignación de coalescencia de nulos (??=) no evalúa su operando derecho. El operador de fusión nulo es similar al operador ternario.

Es cierto que en C# el operador de coalescencia nula (??) es un operador binario. Un operador que actúa sobre dos operandos se denomina operador binario. Cuando se utiliza el operador de coalescencia de nulos, se requieren dos operandos, y el operador evalúa cada operando para determinar el resultado. A continuación vamos a ver el uso de los operadores null coalescing y null conditional en C#.

Cómo utilizar C# Tipos de valores nulos coalescentes

  1. Cree un nuevo proyecto C#.
  2. Asegúrese de que está instalada la versión adecuada.
  3. Utilice el operador de coalescencia de nulos ??.
  4. Compruebe los tipos de valor o referencia de objeto en función del requisito.
  5. Ejecuta el código.

Coalescencia nula en C#

Los valores nulos en C# se gestionan por defecto mediante el método operador de coalescencia nula (??) que es la idea de coalescencia que se utiliza para gestionar dichos valores cuando se trata con tipos anulables o expresiones que pueden dar como resultado null.

Sintaxis

A continuación se muestra la sintaxis del operador de coalescencia nula:

result = expression1 ?? expression2;
result = expression1 ?? expression2;
result = If(expression1, expression2)
VB   C#

expresión1: Esta expresión puede producir un valor nulo.

expresión2: Si expresión1 es nula, éste es el valor por defecto o la expresión sustituta que se utilizará.

resultado: La variable que contiene el resultado de las operaciones de coalescencia.

El operador null-coalescing ofrece un método condensado para asignar un valor por defecto cuando se trabaja con tipos anulables, que es su principal objetivo para racionalizar el código y manejar eficientemente los datos nulos.

Beneficios

  • Concisión: Gestiona las comprobaciones de nulos sin necesidad de complejas sentencias condicionales u operadores ternarios.
  • Se mejora la legibilidad del código indicando explícitamente que se proporcionará un valor por defecto si se devuelve null.

    Es fundamental asegurarse de que los tipos de expresión que se comparan coinciden o son compatibles antes de utilizar el operador de coalescencia nula.

    Aunque útil, el uso excesivo del operador puede dificultar la comprensión del código. Cuando mejore la claridad del código, utilícelo con moderación.

    Cuando se trabaja con tipos anulables o escenarios que requieren valores por defecto, el operador de coalescencia de nulos (??) en C# es una herramienta eficaz para gestionar valores nulos y puede ayudar a escribir código más sucinto y comprensible.

    El operador que coalesce nulos ? posee las siguientes cualidades relacionadas con el tipo:

Inferencia del tipo de resultado

El tipo de resultado del operador de coalescencia de nulos es el mismo que el de estos operandos si las expresiones 1 y 2 tienen el mismo tipo, como se muestra en el código siguiente.

int? Value = null;
int result = Value ?? 10;
int? Value = null;
int result = Value ?? 10;
Dim Value? As Integer = Nothing
Dim result As Integer = If(Value, 10)
VB   C#

Compatibilidad de tipos

El tipo de resultado es el tipo al que se pueden convertir implícitamente ambas expresiones si las expresiones 1 y 2 tienen tipos distintos pero una se puede convertir implícitamente en la otra.

double? value= null;
int result = (int)(value ?? 5.5);
double? value= null;
int result = (int)(value ?? 5.5);
Imports System

Dim value? As Double= Nothing
Dim result As Integer = CInt(Math.Truncate(If(value, 5.5)))
VB   C#

Tipo Promoción

Si los tipos de las expresiones 1 y 2 no pueden convertirse implícitamente, el tipo del resultado se elegirá siguiendo las reglas de promoción de tipos de C#.

int? value= null;
long result = value ?? 100L;
int? value= null;
long result = value ?? 100L;
Dim value? As Integer= Nothing
Dim result As Long = If(value, 100L)
VB   C#

En consecuencia, los tipos de los operandos implicados y las reglas de conversión de tipos de C# dictan el tipo de variable o expresión que contiene el resultado del operador de coalescencia de nulos (??). Para garantizar el manejo correcto de tipos y valores al emplear el operador de coalescencia de nulos, es crucial tener en cuenta la compatibilidad y las probables conversiones de tipos.

Coalescencia en hierroPDF

Instalar IronPDF

Adquirir el IronPDF biblioteca; el próximo parche lo requiere. Para ello, introduzca el siguiente código en el gestor de paquetes:

Install-Package IronPdf

C# Null Coalescing (Cómo funciona para desarrolladores): Figura 1 - Instalar IronPDF

También puede utilizar el gestor de paquetes NuGet para buscar el paquete "IronPDF". Puede elegir y descargar el paquete necesario de esta lista de todos los paquetes NuGet relacionados con IronPDF.

C# Null Coalescing (Cómo funciona para el desarrollador): Figura 2 - Gestor de paquetes NuGet

Crear PDF con coalescencia nula

Para crear y trabajar con documentos PDF se utiliza una biblioteca de C# llamada IronPDF. La biblioteca ofrece algunas funciones para trabajar con PDF, como el formateo, el tratamiento de textos y la gestión de imágenes. La "coalescencia nula" no es un método ni una función exclusiva de IronPDF; se trata más bien de una característica del lenguaje y no de una operación específica de la biblioteca.

Sin embargo, si está trabajando con IronPDF o cualquier otra biblioteca en su código C#, puede utilizar los operadores de coalescencia nula (??) que proporciona el lenguaje C#.

Para manejar situaciones nulas o proporcionar valores por defecto, por ejemplo, mientras se trabaja con objetos IronPDF, tipos de valores anulables o propiedades que pueden devolver null, puede utilizar el operador null-coalescing.

El siguiente ejemplo muestra cómo puede utilizarse el operador de coalescencia nula con IronPDF:

using IronPdf;
using IronPdf.Pages;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string [] args)
        {
            int? x = null;
            var outputstr = $@"square of <b>{x}</b> is <b>{ Math.Sqrt(x??30)}</b>";
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);
            pdfcreate.SaveAs("demo.pdf");
            Console.ReadKey();
        }
    }
}
using IronPdf;
using IronPdf.Pages;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string [] args)
        {
            int? x = null;
            var outputstr = $@"square of <b>{x}</b> is <b>{ Math.Sqrt(x??30)}</b>";
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);
            pdfcreate.SaveAs("demo.pdf");
            Console.ReadKey();
        }
    }
}
Imports IronPdf
Imports IronPdf.Pages
Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim x? As Integer = Nothing
			Dim outputstr = $"square of <b>{x}</b> is <b>{Math.Sqrt(If(x, 30))}</b>"
			Dim pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr)
			pdfcreate.SaveAs("demo.pdf")
			Console.ReadKey()
		End Sub
	End Class
End Namespace
VB   C#

Recuerde que IronPDF (o cualquier biblioteca) no proporciona una función o método especial para gestionar los operadores condicionales de valores nulos; más bien, el uso del operador null-coalescing se basa en características y conceptos generales del lenguaje C# para el manejo de un operador null condicional. Para saber más sobre IronPDF, haga clic en aquí.

Salida:

C# Null Coalescing (Cómo funciona para el desarrollador): Figura 3 - Salida de ejemplo anterior

Conclusión

En resumen, el operador de coalescencia de nulos de C# (??) es una función muy útil que facilita el manejo de valores nulos en expresiones y asignaciones. Este operador simplifica el código proporcionando a los desarrolladores una forma clara de manejar los escenarios en los que un valor podría ser nulo. Esto permite a los desarrolladores especificar valores por defecto o llevar a cabo una lógica alternativa con facilidad. Su adaptabilidad hace que el código sea más ágil y eficaz, simplificando las pruebas nulas y mejorando la legibilidad.

IronPDF ofrece una licencia perpetua, opciones de actualización, un año de mantenimiento del software y una garantía de devolución del dinero de treinta días, todo incluido en el paquete $749 Lite. Los usuarios disponen de treinta días para evaluar el producto en entornos de aplicación reales durante el periodo de prueba con marca de agua. Haga clic en el botón enlace para obtener más información sobre el coste, la licencia y la versión de prueba de IronPDF. Para saber más sobre los productos de Iron Software, consulte aquí.

< ANTERIOR
Datatables .NET (Cómo funciona para desarrolladores)
SIGUIENTE >
Hangfire .NET Core (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123