
Coalescencia de nulos en C# (Cómo funciona para desarrolladores)
El operador de fusión nula ?? evalúa el operando de la derecha y devuelve su resultado si el operando de la izquierda es una referencia nula; de lo contrario, devuelve el valor de su operando del lado izquierdo. Si el operando del lado izquierdo se evalúa como un tipo de valor no anulable, el operador de fusión nula (??) no evalúa su operando en el lado derecho. El operador de asignación ??= es una asignación de fusión nula que asigna el valor de su operando derecho a su operando izquierdo solo cuando el operando izquierdo evalúa a 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 nula es similar al operador ternario.
En C#, el operador de fusión nula (??) es un operador binario. Un operador que actúa sobre dos operandos se conoce como operador binario. Al utilizar el operador de fusión nula, se requieren dos operandos, y el operador evalúa cada operando para determinar el resultado. Ahora vamos a ver el uso de los operadores de fusión nula y condicional nula en C# a continuación.
Cómo utilizar los tipos de valor de fusión de nulos en C#
- Cree un nuevo proyecto de C#.
- Asegúrese de que la versión adecuada esté instalada.
- Utilice el operador de fusión nula ??.
- Verifique los tipos de referencia de valor u objeto según el requisito.
- Ejecutar el código.
Null Coalescing in C#
Los valores nulos en C# son manejados por defecto proporcionado por el operador de fusión nula (??), que es la idea de fusión que se utiliza para gestionar tales valores al tratar con tipos anulables o expresiones que podrían resultar en nulo.
Sintaxis
La siguiente es la sintaxis del operador de fusión nula:
result = expression1 ?? expression2;result = If(expression1, expression2)- expresión1: Esta expresión podría producir un valor nulo.
- expresión2: si expresión1 es nula, este es el valor predeterminado o la expresión sustituta que se utilizará.
- resultado: La variable que contiene el resultado de la operación de coalescencia.
El operador de fusión nula ofrece un método condensado de asignar un valor por defecto al trabajar con tipos anulables, cuyo objetivo principal es simplificar el código y gestionar eficientemente datos nulos.
Beneficios
- Concisión: maneja comprobaciones nulas sin requerir declaraciones condicionales complejas ni operadores ternarios.
- Legibilidad del código: se mejoró al indicar explícitamente que se proporcionará un valor predeterminado si se devuelve nulo.
Es crucial asegurarse de que los tipos de expresión que se están comparando coincidan o sean compatibles antes de usar el operador de fusión nula.
Aunque útil, el uso excesivo del operador podría hacer que el código sea más difícil de comprender. Úselo con moderación cuando mejore la claridad del código.
Al trabajar con tipos anulables o escenarios que requieren valores por defecto, el operador de fusión nula (??) en C# es una herramienta efectiva para gestionar valores nulos y puede ayudar a escribir código más conciso y comprensible.
El operador de fusión nula ?? posee las siguientes cualidades relacionadas con el tipo:
Inferencia de tipos de resultados
El tipo de resultado del operador de fusión nula es el mismo que el de estos operandos si las expresiones 1 y 2 tienen el mismo tipo como se muestra en el siguiente código.
int? Value = null;
int result = Value ?? 10;Dim Value? As Integer = Nothing
Dim result As Integer = If(Value, 10)Compatibilidad de tipos
El tipo de resultado es el tipo al que ambas expresiones pueden ser convertidas implícitamente si las expresiones 1 y 2 tienen tipos distintos pero uno puede ser convertido implícitamente al otro.
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)))Promoción de tipos
Si los tipos de las expresiones 1 y 2 no pueden ser convertidos implícitamente, el tipo de resultado se elegirá según las reglas de promoción de tipos de C#.
int? value = null;
long result = value ?? 100L;Dim value? As Integer = Nothing
Dim result As Long = If(value, 100L)En consecuencia, los tipos de los operandos involucrados y las reglas de conversión de tipos de C# dictan el tipo 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 fusión nula, es crucial tener en cuenta la compatibilidad y las posibles conversiones de tipo.
Coalescencia en IronPDF
Instalar IronPDF
Para instalar la biblioteca IronPDF, ingrese el siguiente código en el Administrador de Paquetes:

Alternativamente, puede utilizar el Administrador de Paquetes NuGet para buscar el paquete "IronPDF". Puede elegir y descargar el paquete necesario de esta lista de todos los paquetes NuGet conectados a IronPDF.

Crear PDF con Null Coalescing
Una biblioteca C# llamada IronPDF se utiliza para crear y trabajar con documentos PDF. La biblioteca ofrece características para trabajar con PDFs, como formato, procesamiento de texto y gestión de imágenes. "Fusión nula" no es un método o característica exclusiva de IronPDF; más bien, es una característica del lenguaje más que 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 fusión nula (??) que proporciona el lenguaje C#.
Para manejar situaciones de nulo o proporcionar valores por defecto, por ejemplo, al trabajar con objetos de IronPDF, tipos de valor anulables o propiedades que pueden devolver nulo, puede utilizar el operador de fusión nula.
El siguiente ejemplo muestra cómo el operador de fusión nula puede ser usado con IronPDF:
using IronPdf;
using IronPdf.Pages;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
int? x = null;
// Use the null-coalescing operator to provide a default value if x is null
var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";
// Render the HTML string as a PDF using IronPDF
var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);
// Save the generated PDF to the file system
pdfcreate.SaveAs("demo.pdf");
// Wait for a key press to prevent the console from closing immediately
Console.ReadKey();
}
}
}Imports IronPdf
Imports IronPdf.Pages
Module Module1
Sub Main(args As String())
Dim x As Integer? = Nothing
' Use the null-coalescing operator to provide a default value if x is null
Dim outputstr = $"square of <b>{x}</b> is <b>{Math.Sqrt(If(x, 30))}</b>"
' Render the HTML string as a PDF using IronPDF
Dim pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr)
' Save the generated PDF to the file system
pdfcreate.SaveAs("demo.pdf")
' Wait for a key press to prevent the console from closing immediately
Console.ReadKey()
End Sub
End ModuleRecuerde que IronPDF (o cualquier biblioteca) no proporciona una característica o método especial para gestionar valores nulos con operadores condicionales; más bien, el uso del operador de fusión nula se basa en características y conceptos generales del lenguaje C# para manejar un operador condicional nulo. Para saber más sobre las características y capacidades de IronPDF, visite los Demos de IronPDF.
Salida:

Conclusión
En resumen, el operador de fusión 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 al dar a los desarrolladores una forma clara de manejar escenarios en los que un valor podría ser nulo. Esto permite a los desarrolladores especificar valores por defecto o llevar a cabo lógica alternativa con facilidad. Su adaptabilidad hace que el código sea más simplificado y efectivo, simplificando las pruebas de nulo 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 de dinero de treinta días, todo incluido en el paquete $999 Lite. Los usuarios tienen treinta días para evaluar el producto en entornos de aplicación en el mundo real durante el período de prueba con marca de agua. Haga clic en el Licenciamiento de IronPDF que se proporciona para aprender más 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.

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.
Artículos Relacionados


