C# Record (Cómo Funciona para Desarrolladores)
El record de C# es una característica poderosa introducida para facilitar la creación de modelos de datos inmutables y mejorar la experiencia de codificación al reducir el código repetitivo. Este tutorial tiene como objetivo simplificar el concepto de records en C# para principiantes, guiándole a través de su sintaxis, uso y ventajas.
Ya sea que esté tratando con objetos de transferencia de datos, configuraciones o simplemente necesite una forma eficiente de representar datos, los records en C# ofrecen un enfoque conciso y amigable para el desarrollador. También hablaremos de IronPDF más adelante en el artículo.
¿Qué es un record de C#?
Un record en C# es un tipo de referencia que proporciona una sintaxis simplificada para definir modelos de datos inmutables. A diferencia de las definiciones de clase tradicionales, un record enfatiza la igualdad basada en valores en lugar de la igualdad de referencia. Esto significa que dos instancias de record se consideran iguales si sus valores de propiedad son los mismos, no simplemente porque se refieren a la misma ubicación de objeto en memoria.
Tipos de registro: Class y Struct
Hay dos tipos principales de records en C#:
- Clase de registro: el tipo de registro predeterminado, que es un tipo de referencia.
- Estructura de registro: introducida para escenarios que requieren tipos de valores, estas son inmutables de manera predeterminada y ofrecen una comparación basada en valores similar a las clases de registro.
Declaración de registro
Declarar un record es sencillo. Puede definir un record usando la palabra clave record seguida por el tipo (clase o struct) y el nombre del record. Por ejemplo, un record simple de persona puede declararse como:
public record class Person(string FirstName, string LastName);
public record class Person(string FirstName, string LastName);
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'public record class Person(string FirstName, string LastName)
Esta declaración incluye parámetros posicionales para FirstName y LastName, que, internamente, generan propiedades públicas y un constructor primario para estas propiedades.
La naturaleza inmutable de los registros
Los records están diseñados para ser inmutables, lo que significa que una vez que una instancia de record se crea, sus valores de propiedad no pueden cambiarse. Esta inmutabilidad es crucial para crear aplicaciones predecibles y seguras para hilos, especialmente cuando se trata de operaciones concurrentes.
Estructura de registro inmutable
Un struct record inmutable se declara de manera similar a una clase record pero utilizando la sintaxis record struct. Combina la inmutabilidad y la comparación basada en valores de los records con los beneficios de rendimiento de un tipo de valor:
public readonly record struct ImmutablePerson(string FirstName, string LastName);
public readonly record struct ImmutablePerson(string FirstName, string LastName);
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'public readonly record struct ImmutablePerson(string FirstName, string LastName)
Trabajar con registros
Los records simplifican la creación y el uso de tipos centrados en datos. Soportan la herencia, permiten la mutación no destructiva y proporcionan un formato incorporado para facilitar la depuración. Exploremos estas características a través de ejemplos.
Creación y comparación de registros
Considera el siguiente ejemplo donde creamos dos instancias de un record de persona:
var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: True
var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); // Output: True
Dim person1 = New Person("Iron", "Software")
Dim person2 = New Person("Iron", "Software")
Console.WriteLine(person1 = person2) ' Output: True
A pesar de que persona1 y persona2 son dos instancias distintas, se consideran iguales basándose en sus valores de propiedad, demostrando la igualdad basada en valores. Esto representa una desviación significativa del comportamiento predeterminado de los tipos de referencia, que se centra en la igualdad de referencia.
Propiedades inmutables
Por diseño, las propiedades de los records son inmutables. Esto significa que no puede cambiar los valores de propiedad de una instancia de record después de que ha sido creada.
// This will result in a compilation error
// person1.FirstName = "Jane";
// This will result in a compilation error
// person1.FirstName = "Jane";
' This will result in a compilation error
' person1.FirstName = "Jane";
Herencia con registros
Los records soportan la herencia, permitiéndote crear una jerarquía de modelos de datos. Aquí te mostramos cómo puedes extender un record base:
public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName);
public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName);
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'public record Employee(string FirstName, string LastName, string Department) : Person(FirstName, LastName)
Este record Empleado extiende Persona, añadiendo la propiedad adicional Departamento.
Características avanzadas del registro
Mutación no destructiva
Los records proporcionan un método incorporado para crear una nueva instancia de record a partir de una existente con algunas propiedades modificadas, conocido como mutación no destructiva.
var updatedPerson = person1 with { FirstName = "Jane" };
var updatedPerson = person1 with { FirstName = "Jane" };
'INSTANT VB TODO TASK: C# 'with expressions' are not converted by Instant VB:
'var updatedPerson = person1 with { FirstName = "Jane" }
Formato incorporado
Los records vienen con un formateo incorporado para facilitar la depuración y el registro, proporcionando automáticamente una representación de cadena de sus propiedades.
Console.WriteLine(person1);
Console.WriteLine(person1);
Console.WriteLine(person1)
Ventajas de usar registros en C
- Sintaxis simplificada: los registros reducen la necesidad de código repetitivo, lo que hace que sus modelos sean más concisos y legibles.
- Modelos de datos inmutables: la naturaleza inmutable de los registros ayuda a crear aplicaciones seguras para subprocesos.
- Igualdad basada en valores: los registros utilizan igualdad basada en valores en lugar de igualdad de referencia, ideal para tipos centrados en datos.
- Soporte para herencia: los registros pueden heredar de otros registros, lo que permite la reutilización de código y modelos de datos jerárquicos.
Introducción a IronPDF: Una biblioteca PDF para C

Visión General de IronPDF es una biblioteca PDF para desarrolladores de .NET, diseñada para generar, editar y manipular documentos PDF dentro de aplicaciones C#. IronPDF soporta la renderización de PDFs desde contenido HTML, CSS, Imágenes y JavaScript.
Su capacidad principal reside en crear documentos PDF desde contenido web, ofreciendo un enfoque simplificado para convertir cadenas HTML, URLs y formularios web ASPX en archivos PDF. IronPDF opera de manera eficiente en diversos tipos de aplicaciones, incluyendo aplicaciones de formularios, aplicaciones de servidor y aplicaciones web.
Cómo instalar la biblioteca IronPDF
Instalar IronPDF es sencillo y se puede realizar a través del Administrador de Paquetes NuGet en Visual Studio. Siga estos pasos:
- En Visual Studio, navegue al Explorador de Soluciones, haga clic derecho en Referencias y seleccione Administrar Paquetes NuGet.
- En el Administrador de Paquetes NuGet, seleccione Examinar y busque "IronPDF".
- Encuentre el paquete de IronPDF y haga clic en Instalar.

Alternativamente, puede instalarlo usando la Consola del Administrador de Paquetes con el comando:
Install-Package IronPdf
Ejemplo: Uso de C# Record con IronPDF
Consideremos un ejemplo práctico donde usamos un record de C# para mantener datos que luego usamos para generar un documento PDF con IronPDF:
public record Person(string FirstName, string LastName);
class Program
{
static void Main(string[] args)
{
// Create an instance of the Person record.
var person = new Person("Iron", "Developer");
// Initialize a new renderer object for generating PDF files using Chrome's rendering engine.
var renderer = new IronPdf.Rendering.ChromePdfRenderer();
// Render an HTML string as a PDF document.
var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");
// Save the PDF to the specified location.
pdf.SaveAs("PersonRecord.pdf");
}
}
public record Person(string FirstName, string LastName);
class Program
{
static void Main(string[] args)
{
// Create an instance of the Person record.
var person = new Person("Iron", "Developer");
// Initialize a new renderer object for generating PDF files using Chrome's rendering engine.
var renderer = new IronPdf.Rendering.ChromePdfRenderer();
// Render an HTML string as a PDF document.
var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");
// Save the PDF to the specified location.
pdf.SaveAs("PersonRecord.pdf");
}
}
'INSTANT VB TODO TASK: C# 'records' are not converted by Instant VB:
'public record Person(string FirstName, string LastName)
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create an instance of the Person record.
Dim person As New Person("Iron", "Developer")
' Initialize a new renderer object for generating PDF files using Chrome's rendering engine.
Dim renderer = New IronPdf.Rendering.ChromePdfRenderer()
' Render an HTML string as a PDF document.
Dim pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>")
' Save the PDF to the specified location.
pdf.SaveAs("PersonRecord.pdf")
End Sub
End Class
Este ejemplo crea un simple record Persona y luego utiliza IronPDF para generar un documento PDF que muestra el nombre de la persona. Demuestra cómo los records de C# pueden integrarse sin problemas con la generación de PDF en aplicaciones .NET.

Licencias de IronPDF

IronPDF es un producto comercial que ofrece varias licencias adaptadas a diferentes necesidades, incluyendo opciones individuales y comerciales. Cada compra viene con una licencia de por vida y una garantía de devolución de dinero de 30 días. Explora las Opciones de Licencia de IronPDF antes de comprar la licencia.
Conclusión
Los records en C# representan un avance significativo para simplificar el modelado de datos en aplicaciones .NET. Al entender y aprovechar los records, los desarrolladores pueden crear bases de código más confiables, mantenibles y legibles.
Ya sea que esté trabajando en aplicaciones a gran escala o en estructuras de datos simples, las características ofrecidas por los records, desde la inmutabilidad hasta la igualdad basada en valores, los convierten en una herramienta indispensable en su arsenal de C#.
IronPDF ofrece la oportunidad de probar sus características usando la prueba gratuita de IronPDF antes de decidir una compra. Si considera que el software satisface sus necesidades, puede comprar una licencia a partir de $999.
Preguntas Frecuentes
¿Cómo puedo usar tipos record en C# para generar un PDF?
Los tipos record de C# se pueden usar para almacenar datos de manera eficiente, que luego IronPDF puede utilizar para generar documentos PDF. Puede crear un record para contener los datos necesarios y usar IronPDF para renderizar esos datos en formato PDF.
¿Cuáles son los beneficios de usar registros de C#?
Los registros de C# ofrecen varios beneficios, incluida una sintaxis simplificada, modelos de datos inmutables, igualdad basada en valores y soporte para herencia. Estas características hacen que los registros sean adecuados para crear tipos centrados en datos concisos y confiables.
¿Cómo manejan la igualdad los registros en C#?
Los registros en C# enfatizan la igualdad basada en valores. Esto significa que dos instancias de registro se consideran iguales si los valores de sus propiedades coinciden, independientemente de su ubicación en memoria.
¿Cómo se declara un record en C#?
Un record en C# se declara usando la palabra clave record seguida del tipo (clase o estructura) y el nombre. Por ejemplo: public record class Person(string FirstName, string LastName);.
¿Cuál es la diferencia entre clases de registros y estructuras de registros?
Las clases de registros son tipos de referencia, mientras que las estructuras de registros son tipos de valor. Ambos proporcionan inmutabilidad y comparación basada en valores, pero difieren en la asignación de memoria y casos de uso.
¿Se pueden modificar las propiedades de un record de C# después de su creación?
Los tipos record de C# están diseñados para ser inmutables, lo que significa que las propiedades no se pueden cambiar después de crear el record. Sin embargo, es posible realizar una mutación no destructiva para crear una nueva instancia de record con propiedades modificadas.
¿Cómo mejora IronPDF las aplicaciones de C#?
IronPDF mejora las aplicaciones de C# proporcionando capacidades sólidas para generar, editar y manipular documentos PDF. Permite a los desarrolladores crear PDFs a partir de contenido HTML, lo que lo convierte en una herramienta versátil para la gestión de documentos.
¿Cómo se instala IronPDF en un proyecto .NET?
Puede instalar IronPDF en un proyecto .NET usando el Gestor de Paquetes NuGet en Visual Studio o ejecutando el comando Install-Package IronPDF en la Consola del Gestor de Paquetes.
¿Cómo funciona la mutación no destructiva en los tipos record de C#?
La mutación no destructiva en los tipos record de C# permite crear una nueva instancia de record a partir de una existente con algunas propiedades modificadas, sin alterar la instancia original.
¿Para qué se utiliza una biblioteca de PDF en el desarrollo de C#?
Una biblioteca de PDF como IronPDF se utiliza en el desarrollo de C# para generar, editar y manipular documentos PDF. Ayuda a los desarrolladores a integrar eficientemente funcionalidades de PDF en sus aplicaciones.




