AYUDA .NET

C# Coalescencia Nula (Cómo Funciona Para Desarrolladores)

Introducción

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

Es cierto que en C# el operador de coalición 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. Usa el operador de fusión de null ??.

  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 manejan por defecto mediante el operador de fusión de nulos (??), que es la idea de fusión que se utiliza para gestionar dichos valores al trabajar con tipos que pueden ser nulos o expresiones que podrían resultar en un nulo.

Sintaxis

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

result = expression1 ?? expression2;
result = expression1 ?? expression2;
result = If(expression1, expression2)
$vbLabelText   $csharpLabel

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 predeterminados, el operador de coalescencia nula (??) en C# es una herramienta eficaz para gestionar valores nulos y puede ayudar a escribir código más conciso 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)
$vbLabelText   $csharpLabel

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)))
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

En consecuencia, los tipos de operandos involucrados 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 fusión nula (??). 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

Para instalar la biblioteca IronPDF, 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 Desarrolladores): Figura 2 - Administrador 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ás trabajando con IronPDF u otra biblioteca en tu código C#, puedes utilizar los operadores de coalecencia 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
$vbLabelText   $csharpLabel

Recuerde que IronPDF (o cualquier biblioteca) no proporciona una característica especial o método para gestionar 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 conocer más sobre las características y capacidades de IronPDF, visite los Demos de IronPDF.

Salida:

C# Null Coalescing (Cómo funciona para desarrolladores): Figura 3 - Salida del ejemplo anterior

Conclusión

En resumen, el operador de coalescencia nula (??) de C# es una característica útil que facilita y hace más eficiente 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 de software y una garantía de devolución de dinero de treinta días, todo incluido en el paquete Lite $749. 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 licenciamiento de IronPDF suministrado para obtener más información sobre el costo, licenciamiento y versión de prueba de IronPDF. Para saber más sobre los productos de Iron Software, consulte el sitio web de Iron Software.

Chipego
Ingeniero de software
Chipego tiene una habilidad natural para escuchar que le ayuda a comprender los problemas de los clientes y a ofrecer soluciones inteligentes. Se unió al equipo de Iron Software en 2023, después de estudiar una licenciatura en Tecnología de la Información. IronPDF e IronOCR son los dos productos en los que Chipego se ha centrado, pero su conocimiento de todos los productos crece día a día, a medida que encuentra nuevas formas de ayudar a los clientes. Disfruta de lo colaborativa que es la vida en Iron Software, con miembros del equipo de toda la empresa que aportan su variada experiencia para contribuir a soluciones eficaces e innovadoras. Cuando Chipego está lejos de su escritorio, a menudo se le puede encontrar disfrutando de un buen libro o jugando al fútbol.
< ANTERIOR
Datatables .NET (Cómo funciona para desarrolladores)
SIGUIENTE >
Hangfire .NET Core (Cómo Funciona para Desarrolladores)