Gravação em C# (Como funciona para desenvolvedores)
O recurso de registro (record) do C# é uma funcionalidade poderosa introduzida para facilitar a criação de modelos de dados imutáveis e aprimorar a experiência de codificação, reduzindo o código repetitivo. Este tutorial tem como objetivo simplificar o conceito de registros em C# para iniciantes, guiando você através de sua sintaxe, uso e vantagens.
Seja para lidar com objetos de transferência de dados, configurações ou simplesmente para encontrar uma maneira eficiente de representar dados, os registros em C# oferecem uma abordagem concisa e amigável para desenvolvedores. Também abordaremos o IronPDF mais adiante neste artigo.
O que é um registro em C#?
Em C#, um registro é um tipo de referência que fornece uma sintaxe simplificada para definir modelos de dados imutáveis. Ao contrário das definições de classe tradicionais, um registro enfatiza a igualdade baseada em valores, em vez da igualdade de referência. Isso significa que duas instâncias de registro são consideradas iguais se os valores de suas propriedades forem os mesmos, e não apenas porque se referem ao mesmo local do objeto na memória.
Tipos de registro: Classe e Estrutura
Existem dois tipos principais de registros em C#:
- Classe de registro: O tipo de registro padrão, que é um tipo de referência.
- Estrutura de registro: Introduzida para cenários que exigem tipos de valor, essas estruturas são imutáveis por padrão e oferecem comparação baseada em valor, semelhante às classes de registro.
Declaração de Registro
Declarar um registro é simples. Você pode definir um registro usando a palavra-chave record seguida pelo tipo (classe ou estrutura) e o nome do registro. Por exemplo, um registro simples de pessoa pode ser declarado 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 declaração inclui parâmetros posicionais para FirstName e LastName , que, internamente, geram propriedades públicas e um construtor primário para essas propriedades.
A natureza imutável dos registros
Os registros são projetados para serem imutáveis, o que significa que, uma vez criada uma instância de registro, os valores de suas propriedades não podem ser alterados. Essa imutabilidade é crucial para a criação de aplicações previsíveis e seguras para uso em múltiplas threads, especialmente ao lidar com operações concorrentes.
Estrutura de registro imutável
Uma estrutura de registro imutável é declarada de forma semelhante a uma classe de registro, mas usando a sintaxe de estrutura de registro . Ele combina a imutabilidade e a comparação de registros baseada em valores com os benefícios de desempenho de um 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)
Trabalhando com Registros
Os registros simplificam a criação e o uso de tipos centrados em dados. Eles suportam herança, permitem mutações não destrutivas e fornecem formatação integrada para facilitar a depuração. Vamos explorar essas funcionalidades por meio de exemplos.
Criação e comparação de registros
Considere o seguinte exemplo, onde criamos duas instâncias de um registro de pessoa:
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
Apesar de a pessoa 1 e a pessoa 2 serem duas instâncias distintas, elas são consideradas iguais com base no valor de suas propriedades, demonstrando igualdade baseada em valores. Isso representa um afastamento significativo do comportamento padrão dos tipos de referência, que se concentra na igualdade de referência.
Propriedades Imutáveis
Por definição, as propriedades dos registros são imutáveis. Isso significa que você não pode alterar os valores das propriedades de uma instância de registro depois que ela tiver sido criada.
// 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";
Herança com Registros
Os registros suportam herança, permitindo que você crie uma hierarquia de modelos de dados. Eis como você pode estender um 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)
Este registro de Funcionário amplia o registro de Pessoa , adicionando a propriedade adicional Departamento .
Recursos avançados de record
Mutação não destrutiva
Os registros fornecem um método integrado para criar uma nova instância de registro a partir de uma existente com algumas propriedades modificadas, conhecido como mutação não destrutiva.
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" }
Formatação integrada
Os registros vêm com formatação integrada para facilitar a depuração e o registro em log, fornecendo automaticamente uma representação em formato de string de suas propriedades.
Console.WriteLine(person1);
Console.WriteLine(person1);
Console.WriteLine(person1)
Vantagens de usar registros em C
- Sintaxe simplificada: Os registros reduzem a necessidade de código repetitivo, tornando seus modelos mais concisos e legíveis.
- Modelos de dados imutáveis: A natureza imutável dos registros ajuda na criação de aplicações thread-safe.
- Igualdade baseada em valor: os registros usam igualdade baseada em valor em vez de igualdade por referência, ideal para tipos centrados em dados.
- Suporte para herança: os registros podem herdar de outros registros, permitindo a reutilização de código e modelos de dados hierárquicos.
Introdução ao IronPDF: Biblioteca PDF AC

Visão geral do IronPDF : O IronPDF é uma biblioteca PDF para desenvolvedores .NET , projetada para gerar, editar e manipular documentos PDF em aplicativos C#. O IronPDF suporta a renderização de PDFs a partir de conteúdo HTML , CSS, imagens e JavaScript.
Sua principal funcionalidade reside na criação de documentos PDF a partir de conteúdo da web, oferecendo uma abordagem simplificada para converter strings HTML, URLs e formulários web ASPX em arquivos PDF. O IronPDF funciona de forma eficiente em diversos tipos de aplicações, incluindo aplicações de formulários, aplicações de servidor e aplicações web.
Como instalar a biblioteca IronPDF
A instalação do IronPDF é simples e pode ser feita através do Gerenciador de Pacotes NuGet no Visual Studio. Siga estes passos:
- No Visual Studio, acesse o Solution Explorer, clique com o botão direito do mouse em References e selecione Manage NuGet Packages.
- No Gerenciador de Pacotes NuGet , selecione Procurar e pesquise por "IronPDF".
- Localize o pacote IronPDF e clique em Instalar.

Alternativamente, você pode instalá-lo usando o Console do Gerenciador de Pacotes com o comando:
Install-Package IronPdf
Exemplo: Usando C# Record com IronPDF
Vamos considerar um exemplo prático onde usamos um registro C# para armazenar dados que depois utilizamos para gerar um documento PDF com o 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 exemplo cria um registro simples de Pessoa e, em seguida, usa o IronPDF para gerar um documento PDF exibindo o nome da pessoa. Este vídeo demonstra como os registros em C# podem ser integrados perfeitamente à geração de PDFs em aplicações .NET .

Licenciamento IronPDF

O IronPDF é um produto comercial que oferece diversas licenças adaptadas a diferentes necessidades, incluindo opções individuais e comerciais. Cada compra inclui uma licença vitalícia e uma garantia de reembolso de 30 dias. Explore as opções de licenciamento do IronPDF antes de adquirir a licença.
Conclusão
Os registros C# representam um avanço significativo na simplificação da modelagem de dados em aplicações .NET . Ao compreender e aproveitar os registros, os desenvolvedores podem criar bases de código mais confiáveis, fáceis de manter e legíveis.
Quer você esteja trabalhando em aplicações de grande escala ou em estruturas de dados simples, os recursos oferecidos pelos registros, da imutabilidade à igualdade baseada em valores, os tornam uma ferramenta indispensável em seu conjunto de ferramentas C#.
O IronPDF oferece a oportunidade de testar seus recursos usando a versão de avaliação gratuita do IronPDF antes de decidir comprá-lo. Se você achar que o software atende às suas necessidades, poderá comprar uma licença a partir de $799.
Perguntas frequentes
Como posso usar registros em C# para gerar um PDF?
Os registros em C# podem ser usados para armazenar dados de forma eficiente, que podem então ser utilizados pelo IronPDF para gerar documentos PDF. Você pode criar um registro para armazenar os dados necessários e usar o IronPDF para renderizar esses dados em formato PDF.
Quais são os benefícios de usar registros C#?
Os registros em C# oferecem diversas vantagens, incluindo sintaxe simplificada, modelos de dados imutáveis, igualdade baseada em valores e suporte à herança. Esses recursos tornam os registros adequados para a criação de tipos concisos e confiáveis centrados em dados.
Como os registros lidam com a igualdade em C#?
Em C#, os registros priorizam a igualdade baseada em valores. Isso significa que duas instâncias de registro são consideradas iguais se os valores de suas propriedades coincidirem, independentemente de sua localização na memória.
Como declarar um registro em C#?
Em C#, um registro é declarado usando a palavra-chave record seguida pelo tipo (classe ou struct) e o nome do registro. Por exemplo: ` public record class Person(string FirstName, string LastName); `.
Qual a diferença entre classes de registro e estruturas de registro?
As classes de registro são tipos de referência, enquanto as estruturas de registro são tipos de valor. Ambas oferecem imutabilidade e comparação baseada em valor, mas diferem na alocação de memória e nos casos de uso.
É possível modificar as propriedades de um registro C# após sua criação?
Em C#, os registros são projetados para serem imutáveis, o que significa que suas propriedades não podem ser alteradas após a criação do registro. No entanto, é possível realizar uma mutação não destrutiva para criar uma nova instância de registro com propriedades modificadas.
Como o IronPDF aprimora aplicativos C#?
O IronPDF aprimora aplicações C# ao fornecer recursos robustos para gerar, editar e manipular documentos PDF. Ele permite que desenvolvedores criem PDFs a partir de conteúdo HTML, tornando-se uma ferramenta versátil para gerenciamento de documentos.
Como instalar o IronPDF em um projeto .NET?
Você pode instalar o IronPDF em um projeto .NET usando o Gerenciador de Pacotes NuGet no Visual Studio ou executando o comando Install-Package IronPDF no Console do Gerenciador de Pacotes.
Como funciona a mutação não destrutiva em registros C#?
A mutação não destrutiva em registros C# permite criar uma nova instância de registro a partir de uma existente com algumas propriedades modificadas, sem alterar a instância original.
Para que serve uma biblioteca PDF no desenvolvimento em C#?
Uma biblioteca PDF como o IronPDF é usada no desenvolvimento em C# para gerar, editar e manipular documentos PDF. Ela ajuda os desenvolvedores a integrar funcionalidades de PDF em seus aplicativos de forma eficiente.




