AYUDA .NET

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

El registro 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 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 discutiremos 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: El tipo de registro predeterminado, que es un tipo de referencia.
  • Struct de registro: Introducidos para escenarios que requieren tipos de valor, son inmutables por defecto y ofrecen comparación basada en valores similar a las clases de registro.

Declaración de registro

Declarar un registro es sencillo. Puedes definir un registro usando la palabra clave record seguida por el 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)
$vbLabelText   $csharpLabel

Esta declaración incluye parámetros posicionales para FirstName y LastName, que en su funcionamiento interno, generan propiedades públicas y un constructor principal 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 registro inmutable struct 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 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)
$vbLabelText   $csharpLabel

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

A pesar de que person1 y person2 son dos instancias distintas, se consideran iguales basándose en sus valores de propiedades, demostrando 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.

// 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";
$vbLabelText   $csharpLabel

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

Este Empleado registro extiende Persona, añadiendo la propiedad adicional de 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" }
$vbLabelText   $csharpLabel

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

Ventajas de utilizar C# Registros

  • Sintaxis Simplificada: Los registros reducen la necesidad de código repetitivo, haciendo que tus modelos sean más concisos y legibles.
  • Modelos de Datos Inmutables: La naturaleza inmutable de los registros ayuda a crear aplicaciones seguras para la concurrencia.
  • Igualdad Basada en Valor: Los registros utilizan la igualdad basada en valor en lugar de la 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 C# PDF

Registro de C# (Cómo Funciona para Desarrolladores): Figura 1

Descripció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 admite la conversión de PDFs desde contenido HTML, CSS, Imágenes y JavaScript.

Su capacidad principal reside en la creación de documentos PDF a partir de contenido web, ofreciendo un enfoque racionalizado 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.

    C# Record (Cómo Funciona para Desarrolladores): Figura 2

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

Install-Package IronPdf
Install-Package IronPdf
SHELL

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

Este ejemplo crea un registro simple de Person 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 de C# (Cómo Funciona para Desarrolladores): Figura 3

Licencias IronPDF

Registro de C# (Cómo funciona para 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. Explore las opciones de licencia de IronPDF antes de comprar 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 características utilizando la prueba gratuita de IronPDF antes de decidir una compra. Si encuentras que el software cumple con tus necesidades, puedes comprar una licencia a partir de $749.

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