AYUDA .NET

C# Record (Cómo funciona para los desarrolladores)

Actualizado 3 de abril, 2024
Compartir:

Registro C es una potente función introducida para facilitar la creación de modelos de datos inmutables y mejorar la experiencia de codificación reduciendo el código repetitivo. Este tutorial pretende simplificar el concepto de registros en C# para principiantes, guiándole a través de su sintaxis, uso y ventajas.

Tanto si se trata de objetos de transferencia de datos como de configuraciones, o simplemente necesita una forma eficaz de representar datos, los registros de C# ofrecen un enfoque conciso y fácil de usar para el desarrollador. También hablaremos de IronPDF más adelante en el artículo.

¿Qué es un registro C&num?

Un registro 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 registro hace hincapié en la igualdad basada en valores en lugar de en la igualdad de referencias. Esto significa que dos instancias de registro se consideran iguales si los valores de sus propiedades son los mismos, no sólo porque se refieran a la misma ubicación de objeto en memoria.

Tipos de registro: Class y Struct

Existen dos tipos principales de registros en C#:

  • Clase de registro: La clase de registro por defecto, que es una clase de referencia.
  • Estructura de registro: Introducido para escenarios que requieren tipos de valores, estos son inmutables por defecto y ofrecen una comparación basada en valores similar a las clases record.

Declaración de registro

Declarar un registro es sencillo. Puede definir un registro utilizando la palabra clave record seguida del tipo (clase o estructura) y el nombre del registro. Por ejemplo, un simple registro 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)
VB   C#

Esta declaración incluye parámetros de posición para FirstName y LastName, que bajo el capó, generan propiedades públicas y un constructor primario para estas propiedades.

La naturaleza inmutable de los registros

Los registros están diseñados para ser inmutables, lo que significa que una vez que se crea una instancia de registro, los valores de sus propiedades no se pueden cambiar. Esta inmutabilidad es crucial para crear aplicaciones predecibles y seguras para los hilos, especialmente cuando se trata de operaciones concurrentes.

Estructura de registro inmutable

Un record struct inmutable se declara de forma similar a una clase record pero utilizando la sintaxis record struct. Combina la inmutabilidad y la comparación basada en valores de los registros con las ventajas 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)
VB   C#

Trabajar con registros

Los registros simplifican la creación y el uso de tipos centrados en datos. Admiten la herencia, permiten la mutación no destructiva y ofrecen formato integrado para facilitar la depuración. Exploremos estas características a través de ejemplos.

Creación y comparación de registros

Considere el siguiente ejemplo en el que creamos dos instancias de un registro de persona:

var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); //  Salida: True
var person1 = new Person("Iron", "Software");
var person2 = new Person("Iron", "Software");
Console.WriteLine(person1 == person2); //  Salida: True
Dim person1 = New Person("Iron", "Software")
Dim person2 = New Person("Iron", "Software")
Console.WriteLine(person1 = person2) '  Salida: True
VB   C#

A pesar de que persona1 y persona2 son dos instancias distintas, se consideran iguales en función de sus valores de propiedad, lo que pone de manifiesto la igualdad basada en valores. Esto supone un cambio significativo respecto al comportamiento por defecto de los tipos de referencia, que se centra en la igualdad de referencias.

Propiedades inmutables

Por su diseño, las propiedades de los registros son inmutables. Esto significa que no se pueden modificar los valores de las propiedades de un registro una vez creado.

//  Esto provocará un error de compilación
//  persona1.Nombre = "Jane";
//  Esto provocará un error de compilación
//  persona1.Nombre = "Jane";
'  Esto provocará un error de compilación
'  persona1.Nombre = "Jane";
VB   C#

Herencia con registros

Los registros admiten la herencia, lo que permite crear una jerarquía de modelos de datos. A continuación se explica cómo ampliar un registro 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)
VB   C#

Este registro Empleado amplía Persona, añadiendo la propiedad adicional Departamento.

Funciones avanzadas de grabación

Mutación no destructiva

Los registros proporcionan un método incorporado para crear una nueva instancia de registro a partir de una existente con algunas propiedades modificadas, lo que se conoce 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" }
VB   C#

Formato integrado

Los registros vienen con formato 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)
VB   C#

Ventajas de utilizar C# Registros

  • Sintaxis simplificada: Los registros reducen la necesidad de código repetitivo, haciendo que sus modelos sean más concisos y legibles.
  • Modelos de datos inmutables: La naturaleza inmutable de los registros ayuda a crear aplicaciones seguras.
  • Igualdad basada en valores: Los registros utilizan la igualdad basada en valores en lugar de la igualdad de referencias, ideal para tipos centrados en datos.
  • Soporte para la 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 C# PDF

Registro C# (Cómo funciona para los desarrolladores): Figura 1

IronPDF es una biblioteca PDF para desarrolladores .NET, diseñada para generar, editar y manipular documentos PDF en aplicaciones C#. IronPDF admite la renderización PDF a partir de HTML CSS, imágenes y JavaScript.

Su función principal consiste en crear documentos PDF a partir de contenido web, ofreciendo un método simplificado para convertir cadenas HTML, URL y formularios web ASPX en archivos PDF. IronPDF funciona con eficacia en varios tipos de aplicaciones, incluidas aplicaciones de formularios, aplicaciones de servidor y aplicaciones web.

Cómo instalar la biblioteca IronPDF

La instalación de IronPDF es sencilla y puede realizarse mediante el gestor de paquetes NuGet de Visual Studio. Sigue estos pasos:

  1. En Visual Studio, vaya al Explorador de soluciones, haga clic con el botón derecho en Referencias y seleccione Administrar paquetes NuGet.
  2. En el Gestor de paquetes NuGet, seleccione Examinar y busque "IronPdf".
  3. Busque el paquete IronPDF y haga clic en Instalar.

    Registro C# (Cómo funciona para los desarrolladores): Figura 2

    Alternativamente, puede instalarlo utilizando la consola del gestor de paquetes con el comando:

Install-Package IronPdf

Ejemplo: Utilización de C# Record con IronPDF

Veamos un ejemplo práctico en el que utilizamos un registro de C# para guardar datos que luego utilizamos para generar un documento PDF con IronPDF:

public record Person(string FirstName, string LastName);
class Program
{
    static void Main(string [] args)
    {
        var person = new Person("Iron", "Developer");
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");
        pdf.SaveAs("PersonRecord.pdf");
    }
}
public record Person(string FirstName, string LastName);
class Program
{
    static void Main(string [] args)
    {
        var person = new Person("Iron", "Developer");
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>");
        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)
		Dim person As New Person("Iron", "Developer")
		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf($"<h1>Person Record</h1><p>Name: {person.FirstName} {person.LastName}</p>")
		pdf.SaveAs("PersonRecord.pdf")
	End Sub
End Class
VB   C#

Este ejemplo crea un simple registro Persona y luego utiliza IronPDF para generar un documento PDF que muestra el nombre de la persona. Muestra la perfecta integración de los registros de C# con la generación de PDF en aplicaciones .NET.

Registro C# (Cómo funciona para los desarrolladores): Figura 3

Licencias IronPDF

Registro C# (Cómo funciona para los desarrolladores): Figura 4

IronPDF es un producto comercial que ofrece varias licencias adaptadas a diferentes necesidades, incluidas opciones individuales y comerciales. Cada compra incluye una licencia de por vida y una garantía de devolución del dinero de 30 días. Licencia antes de adquirir la licencia.

Conclusión

Los registros de C# representan un importante paso adelante en la simplificación del modelado de datos en las aplicaciones .NET. Al comprender y aprovechar los registros, los desarrolladores pueden crear bases de código más fiables, mantenibles y legibles.

Tanto si trabaja en aplicaciones a gran escala como en estructuras de datos sencillas, las funciones que ofrecen los registros, desde la inmutabilidad hasta la igualdad basada en valores, los convierten en una herramienta indispensable en su kit de herramientas de C#.

IronPDF ofrece la oportunidad de probar sus funciones mediante el programa prueba gratuita antes de decidirse a comprar. Si considera que el software satisface sus necesidades, puede adquirir una licencia a partir de $749.

< ANTERIOR
C# Using Statement (Cómo funciona para desarrolladores)
SIGUIENTE >
Acción C# (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