IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Construtor primário em C# (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 23 de abril de 2026

No cenário de programação orientada a objetos em C#, a introdução dos construtores primários traz um novo nível de elegância e simplicidade à linguagem. Os construtores primários, juntamente com recursos como interceptores e expressões de coleção, surgiram no C# 12 como um recurso poderoso, oferecendo uma sintaxe mais concisa para declarar construtores com parâmetros. Você pode explorar os construtores primários em detalhes no guia do Microsoft C# .

Neste artigo, aprenderemos como usar os construtores primários do C# 12 de forma eficiente, explorando também sua funcionalidade, casos de uso e como eles transformam a maneira como os desenvolvedores abordam a inicialização de classes.

Understanding the Basics: Constructors in C#

Os construtores desempenham um papel fundamental na programação orientada a objetos, servindo como modelo para a inicialização de objetos. Tradicionalmente, os desenvolvedores de C# usam o construtor padrão ou construtores parametrizados para definir o estado inicial de suas classes. No entanto, a introdução dos construtores primários adiciona uma abordagem mais simplificada a esse aspecto essencial do desenvolvimento em C#.

A essência dos construtores primários

Um construtor primário em C# é uma maneira concisa de declarar e inicializar propriedades diretamente dentro da declaração da classe. Simplifica o processo de definição e atribuição de valores às propriedades, oferecendo uma sintaxe mais declarativa e legível.

Benefícios dos Construtores Primários

  1. Concisão: Os construtores primários fornecem uma sintaxe sucinta, reduzindo o código repetitivo e melhorando a legibilidade.
  2. Escopo: Ao contrário dos construtores tradicionais, os parâmetros nos construtores primários estão no escopo de toda a classe ou struct, oferecendo flexibilidade em seu uso.
  3. Valores padrão: Os valores padrão dos parâmetros simplificam a criação de objetos, tornando-a mais conveniente para os desenvolvedores.

Declarando um construtor primário

A sintaxe de um construtor primário envolve a declaração das propriedades diretamente no cabeçalho da classe. Vamos considerar um exemplo básico de classe Person:

public class Person(string name, int age)
{
    public string Name { get; } = name;
    public int Age { get; } = age;
    public override string ToString() => $"Name: {Name}, Age: {Age}";
}

No trecho de código acima, a classe Person possui um construtor primário que inicializa as propriedades Name e Age , membros da instância. Os parâmetros do construtor são declarados com o nome da classe ou da estrutura, e, no momento da definição das propriedades públicas, os valores dos parâmetros são atribuídos a eles.

Exemplo 1: Ponto imutável no espaço bidimensional

public readonly struct Point(double x, double y)
{
    public double X { get; } = x;
    public double Y { get; } = y;
    public double Magnitude => Math.Sqrt(X * X + Y * Y);
}

Neste exemplo, o construtor principal da estrutura Point inicializa as propriedades X e Y , demonstrando como a sintaxe pode ser concisa e expressiva.

Exemplo 2: Registrador configurável com configurações padrão

public class Logger(string filePath = "log.txt", LogLevel level = LogLevel.Info)
{
    private readonly string _filePath = filePath;
    private readonly LogLevel _level = level;

    public void Log(string message)
    {
        // Actual logging implementation using _filePath and _level
    }
}

Aqui, o construtor principal da classe Logger fornece valores padrão para filePath e level , tornando-a flexível e fácil de usar, ao mesmo tempo que mantém a capacidade de configuração.

Exemplo 3: Injeção de Dependência

public interface IService
{
    Distance GetDistance();
}

public class ExampleController(IService service) : ControllerBase
{
    public ActionResult<Distance> Get() => service.GetDistance();
}

Os construtores primários são adequados para cenários de injeção de dependência. Neste exemplo, uma classe controladora indica suas dependências, melhorando a manutenção e facilitando os testes unitários.

Exemplo 4: Construindo uma Hierarquia de Formas Geométricas

public abstract class Shape(double width, double height)
{
    public double Width { get; } = width;
    public double Height { get; } = height;
    public abstract double CalculateArea();
}

public class Rectangle(double width, double height) : Shape(width, height)
{
    public override double CalculateArea() => Width * Height;
}

public class Circle : Shape
{
    public Circle(double radius) : base(radius * 2, radius * 2) { }
    public override double CalculateArea() => Math.PI * Math.Pow(Width / 2, 2);
}

Neste exemplo, o construtor principal da classe Shape forma a base para uma hierarquia de formas geométricas. Subclasses como Rectangle e Circle aproveitam o construtor principal para uma inicialização consistente. A própria classe Rectangle declara o construtor primário e passa os parâmetros capturados do construtor primário para os parâmetros primários da classe Shape . A classe Circle demonstra flexibilidade ao definir seu construtor dentro da própria classe e, em seguida, passar seus parâmetros como valores padrão para o construtor Shape usando a palavra-chave base .

Apresentando o IronPDF

IronPDF é uma biblioteca C# versátil que permite aos desenvolvedores criar, manipular e converter arquivos PDF sem esforço. Seja para gerar faturas, relatórios ou qualquer outro documento, o IronPDF permite converter conteúdo HTML em PDFs profissionais e refinados diretamente em sua aplicação C#.

O IronPDF é uma ferramenta prática para desenvolvedores que permite converter páginas da web, URLs e HTML em PDF . A melhor parte é que os PDFs ficam exatamente iguais às páginas da web originais, com toda a formatação e estilo preservados. É perfeito para criar PDFs a partir de conteúdo da web, como relatórios e faturas.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

C# Construtor Primário (Como Funciona Para o Desenvolvedor): Figura 1 - página da web do IronPDF

Instalando o IronPDF: Um Guia Rápido

Para incorporar o IronPDF ao seu projeto C#, comece instalando o pacote NuGet do IronPDF . Execute o seguinte comando no console do seu gerenciador de pacotes:

PM > Install-Package IronPdf

Como alternativa, localize o pacote "IronPDF" no Gerenciador de Pacotes NuGet e prossiga com a instalação a partir daí.

C# Construtor Primário (Como Funciona Para o Desenvolvedor): Figura 2 - Procurando o pacote IronPDF no navegador de pacotes do NuGet

Gerando PDFs com o IronPDF

Criar um PDF usando o IronPDF é um processo simplificado. Considere o seguinte exemplo:

var htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Create a new PDF document
var pdfDocument = new IronPdf.ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(htmlContent).SaveAs("C:/GeneratedDocument.pdf");

Neste exemplo, o IronPDF é utilizado para renderizar conteúdo HTML em um documento PDF, que posteriormente é salvo no local especificado. Para obter mais detalhes sobre como criar e manipular PDFs em C#, visite este tutorial completo e, para explorar mais, visite esta página de documentação .

Construtores Primários C#: Uma Revolução na Inicialização de Classes

Os construtores primários em C# oferecem uma abordagem declarativa e simplificada para inicializar propriedades de classe diretamente na declaração da classe. Vamos explorar se esse recurso elegante pode ser integrado perfeitamente ao IronPDF.

Integração dos Construtores Primários C# com o IronPDF

Embora os construtores primários do C# sejam principalmente um recurso da linguagem focado na inicialização de classes, sua integração direta com o IronPDF pode não ser um caso de uso comum. A funcionalidade principal do IronPDF reside na geração e manipulação de documentos PDF, e os detalhes da inicialização de classes podem não estar diretamente alinhados com esse fluxo de trabalho.

No entanto, os desenvolvedores podem aproveitar os construtores primários do C# ao definir classes ou estruturas personalizadas relacionadas às configurações ou modelos de dados do IronPDF . Por exemplo, se sua aplicação requer uma estrutura de classes específica para gerenciar configurações ou definições relacionadas a PDFs, os construtores primários em C# podem ser uma ferramenta valiosa para inicializar essas classes de forma concisa.

public class PdfGenerationSettings(string title, bool includeHeader, bool includeFooter)
{
    public string Title { get; } = title;
    public bool IncludeHeader { get; } = includeHeader;
    public bool IncludeFooter { get; } = includeFooter;
    // Additional properties...
}

// Usage with IronPDF
var pdfSettings = new PdfGenerationSettings("My PDF Title", true, false);
var renderOptions = new ChromePdfRenderOptions
{
    PaperSize = IronPdf.Rendering.PdfPaperSize.A4,
    MarginTop = 20,
    MarginBottom = 20,
    MarginLeft = 10,
    MarginRight = 10,
    Title = pdfSettings.Title
};
// Apply settings from PdfGenerationSettings
if (pdfSettings.IncludeHeader)
{
    renderOptions.TextHeader = new TextHeaderFooter
    {
        CenterText = "Page {page} of {total-pages}",
        DrawDividerLine = true
    };
}
var pdfDocument = new IronPdf.ChromePdfRenderer();
pdfDocument.RenderingOptions = renderOptions;
pdfDocument.RenderHtmlAsPdf("<html><body><h1>Hello, IronPDF!</h1></body></html>").SaveAs("CustomizedDocument.pdf");

Neste exemplo, a classe PdfGenerationSettings utiliza um construtor primário em C# para inicializar propriedades relacionadas às configurações de geração de PDF, que podem ser usadas posteriormente para determinar quais opções de renderização adicionar e quais ignorar. A saída contém um texto de cabeçalho e um título, conforme definidos pelo parâmetro do construtor primário.

C# Construtor Primário (Como Funciona Para o Desenvolvedor): Figura 3 - PDF de saída do exemplo de código acima

Conclusão

Em conclusão, os construtores primários em C# apresentam uma abordagem refinada e expressiva para a inicialização de classes. Sua sintaxe declarativa melhora a legibilidade do código, promove a imutabilidade e simplifica o processo de criação de objetos com valores padrão. Seja definindo propriedades, impondo imutabilidade ou adotando valores padrão, os construtores primários permitem que os desenvolvedores dominem a arte da inicialização de classes no mundo dinâmico da programação em C#.

Embora a integração direta dos construtores primários do C# com o IronPDF possa não ser o foco principal, esses dois elementos podem funcionar em harmonia. Os construtores primários em C# aprimoram a clareza e a simplicidade da inicialização de classes, tornando-os valiosos para definir estruturas ou configurações relacionadas aos fluxos de trabalho do IronPDF .

Aproveite o poder do IronPDF para gerar PDFs robustos e utilize construtores primários em C# onde a elegância na inicialização de classes é fundamental. Essa dupla dinâmica permite que você navegue pelas complexidades da geração de documentos com criatividade e eficiência no vibrante mundo da programação em C#.

IronPDF oferece uma avaliação gratuita e sua licença lite começa a partir de $999.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.