
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ándote a través de su sintaxis, uso y ventajas.
Ya sea que estés tratando con objetos de transferencia de datos, configuraciones o simplemente necesites 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 registro 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. Puedes 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);'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);'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: TrueDim person1 = New Person("Iron", "Software")
Dim person2 = New Person("Iron", "Software")
Console.WriteLine(person1 = person2) ' Output: TrueA 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 puedes 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";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);'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" };'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)Ventajas de usar registros 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, navega a el Explorador de Soluciones, haz clic derecho en Referencias y selecciona Administrar Paquetes NuGet.
- En el Administrador de paquetes NuGet, seleccione Explorar y busque "IronPDF".
- Encuentra el paquete de IronPDF y haz clic en Instalar.

Alternativamente, puedes instalarlo usando la Consola del Administrador de Paquetes con el comando:
Ejemplo: Usar registro C# 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");
}
}'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 ClassEste 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és 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 tu arsenal de C#.
IronPDF ofrece la oportunidad de probar sus características usando la Prueba Gratuita de IronPDF antes de decidir una compra. Si encuentras que el software satisface tus necesidades, puedes comprar una licencia comenzando en $999.

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


