IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Const em C# (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Em C#, a palavra-chave const é uma ferramenta poderosa para definir campos ou valores constantes que são conhecidos em tempo de compilação. Esses valores são imutáveis, o que significa que, uma vez definidos, seu valor não pode ser alterado durante a execução do programa. Utilizar const pode tornar seu código mais legível e fácil de manter, fornecendo uma indicação clara dos valores que devem permanecer constantes. Neste artigo, discutiremos a palavra-chave const e a biblioteca IronPDF .

Declaração de variáveis ​​constantes

Para declarar uma variável constante, você usa a palavra-chave const seguida por um tipo de dado e, em seguida, a inicializa imediatamente. Por exemplo, const int myConstValue = 100; define uma constante inteira. É importante notar que uma variável constante deve ser inicializada quando é declarada, pois seu valor deve ser determinado em tempo de compilação e totalmente avaliado antes da execução do programa.

public class Program
{
    public const int MaxSize = 10;

    static void Main(string[] args)
    {
        Console.WriteLine(MaxSize);
    }
}

C# Const (Como Funciona para Desenvolvedores): Figura 1 - Saída Const

Este exemplo ilustra um uso simples de um número inteiro constante ( const int ) dentro de uma classe. A constante MaxSize é acessível dentro da mesma classe e pode ser usada diretamente no método estático void Main .

Variáveis ​​const vs. readonly

Embora as palavras-chave const e readonly sejam usadas para declarar valores imutáveis, existem diferenças importantes entre elas. Um campo const é uma constante de tempo de compilação, o que significa que seu valor é determinado em tempo de compilação e incorporado diretamente no código da Linguagem Intermediária (IL). Isso torna o valor estático e impossível de ser modificado.

Por outro lado, uma variável somente leitura pode ser atribuída tanto no momento da declaração quanto dentro de um construtor da classe. Isso permite alguma flexibilidade, já que os campos somente leitura podem ter valores diferentes dependendo do construtor usado para instanciar a classe.

public class Program
{
    public const string ConstExample = "Constant"; // const string
    public readonly string ReadonlyExample;

    public Program()
    {
        ReadonlyExample = "Initialized at runtime";
    }

    static void Main(string[] args)
    {
        Program p = new Program();
        Console.WriteLine(ConstExample);
        Console.WriteLine(p.ReadonlyExample);
    }
}

C# Const (Como Funciona para Desenvolvedores): Figura 2 - Saída do Campo Somente Leitura

Escopo das variáveis ​​constantes

Variáveis ​​constantes podem ser declaradas dentro de um método ou como membro de uma classe. Quando você declara uma variável constante dentro de um método, ela é conhecida como constante local. As constantes locais só podem ser acessadas dentro do método em que foram declaradas.

public class Program
{
    static void DemoMethod()
    {
        const int LocalConst = 5; // local constant
        Console.WriteLine(LocalConst);
    }
}

C# Const (Como Funciona para Desenvolvedores): Figura 3 - Saída de Constante Local

Em contrapartida, quando uma constante é declarada dentro de uma classe, mas fora de qualquer método, ela é acessível a partir de qualquer função estática da mesma classe, porque os campos constantes são implicitamente estáticos. No entanto, tentar acessar um campo constante a partir de um método de instância sem referenciá-lo através do nome da classe resultará em um erro de compilação.

Constantes de tempo de compilação versus constantes de tempo de execução

A principal característica dos valores constantes é que eles são avaliados em tempo de compilação. Isso significa que o valor de um campo constante deve ser conhecido e totalmente avaliado pelo compilador. Isso contrasta com as variáveis ​​que são avaliadas em tempo de execução, cujos valores são determinados durante a execução do programa.

Por exemplo, tentar atribuir um valor a um campo constante com base em um cálculo realizado em tempo de execução causará um erro de compilação. O compilador exige que os valores constantes sejam atribuídos a partir de expressões constantes ou valores literais que sejam conhecidos em tempo de compilação.

const double Pi = Math.PI; // This will cause a compile time error

Advanced Use of Constants and Static Members in C#

Além dos conceitos básicos de const e readonly em C#, entender como trabalhar com expressões constantes, construtores estáticos e campos estáticos pode aprimorar suas práticas de programação, especialmente ao lidar com valores constantes que precisam ser compartilhados entre instâncias de uma classe.

Expressões constantes

Uma expressão constante em C# é uma expressão que pode ser totalmente avaliada em tempo de compilação. Portanto, ao declarar uma variável const , o lado direito da declaração deve ser uma expressão constante. Isso garante que o valor constante seja fixo e possa ser incorporado diretamente no código compilado, resultando em aplicações altamente otimizadas e eficientes.

public class Calculator
{
    public const int Multiplier = 2;
    public const int DoubleMultiplier = Multiplier * 2; // Constant expression
}

Neste exemplo, DoubleMultiplier é uma expressão constante porque é calculada usando outro valor constante, o que a torna elegível para ser uma constante em tempo de compilação.

Construtor Estático

Um construtor estático em C# é um construtor especial que inicializa os campos estáticos da classe. É chamado automaticamente antes da criação da primeira instância ou de qualquer referência a membros estáticos. Construtores estáticos são úteis para inicialização complexa de dados estáticos ou para executar ações que precisam ocorrer uma única vez por tipo, em vez de por instância.

public class Program
{
    public static readonly string StartTime;

    static Program()
    {
        StartTime = DateTime.Now.ToString("T");
    }

    public static void DisplayStartTime()
    {
        Console.WriteLine($"Program started at: {StartTime}");
    }
}

O construtor estático inicializa o campo StartTime com a hora atual. Esse valor fica então acessível através do método estático DisplayStartTime , demonstrando como construtores estáticos podem ser usados ​​para inicializar campos somente leitura com valores que só serão conhecidos em tempo de execução.

Campos estáticos e as palavras-chave somente leitura e estáticas

Os campos estáticos pertencem à classe, e não a qualquer instância da classe, e são declarados usando a palavra-chave static . Quando combinado com a palavra-chave readonly , um campo estático pode ser inicializado no momento da declaração ou dentro de um construtor estático e não pode ser modificado posteriormente.

public class Configuration
{
    public static readonly int MaxUsers;
    public const int TimeoutSeconds = 30;

    static Configuration()
    {
        MaxUsers = FetchMaxUsersFromConfig();
    }

    private static int FetchMaxUsersFromConfig()
    {
        // Imagine this method reads from a configuration file
        return 100;
    }
}

Este exemplo demonstra o uso de um construtor estático para inicializar um campo estático somente leitura , **MaxUsers** , com um valor que é obtido em tempo de execução, possivelmente de um arquivo de configuração. O campo constante , TimeoutSeconds , representa uma constante de tempo de compilação que é incorporada diretamente ao código.

Introdução ao IronPDF

C# Const (Como Funciona para Desenvolvedores): Figura 4 - IronPDF

IronPDF é uma biblioteca versátil que permite aos desenvolvedores criar, editar e ler documentos PDF em aplicações .NET . Essa poderosa ferramenta simplifica a geração de PDFs, permitindo que os desenvolvedores convertam HTML em PDF, manipulem o conteúdo e extraiam dados de arquivos PDF com facilidade.

A principal vantagem do IronPDF reside na conversão de HTML para PDF , preservando tanto o layout quanto o estilo. É uma ferramenta ideal para gerar PDFs a partir de conteúdo da web, como relatórios, faturas e documentação. Arquivos HTML, URLs e strings HTML podem ser facilmente convertidos em arquivos PDF.

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");
    }
}

Introdução ao IronPDF e exemplo de const

Para demonstrar como o IronPDF pode ser integrado a um projeto .NET , vejamos um exemplo simples onde usamos uma constante para definir a string HTML que queremos converter em um documento PDF.

using IronPdf;

public class PdfGenerator
{
    // Defining a constant HTML template
    public const string HtmlTemplate = @"
        <html>
            <head>
                <title>PDF Report</title>
            </head>
            <body>
                <h1>IronPDF Report</h1>
                <p>This is a simple PDF document generated from HTML string using IronPDF.</p>
            </body>
        </html>";

    public static void CreatePdf(string filePath)
    {
        IronPdf.License.LicenseKey = "License";

        // Create a new PDF document from HTML template
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(HtmlTemplate);

        // Save the PDF document to a file
        pdf.SaveAs(filePath);
        Console.WriteLine($"PDF generated successfully at {filePath}");
    }
}

class Program
{
    static void Main(string[] args)
    {
        PdfGenerator.CreatePdf("example.pdf");
    }
}

Neste exemplo, a constante HtmlTemplate é definida com conteúdo HTML simples que serve como fonte para o nosso documento PDF. O método CreatePdf utiliza a classe ChromePdfRenderer do IronPDF para converter este HTML em um PDF e salvá-lo no caminho de arquivo especificado. Isso demonstra a facilidade com que o IronPDF pode ser usado para gerar PDFs a partir de conteúdo HTML estático, aproveitando a palavra-chave const para definir modelos HTML imutáveis.

Saída

Aqui está o arquivo PDF gerado:

C# Const (Como Funciona para Desenvolvedores): Figura 5 - Saída PDF

Conclusão

Em C#, a palavra-chave const é um recurso valioso para definir valores imutáveis ​​que são conhecidos em tempo de compilação. Ela ajuda a melhorar a legibilidade e a manutenção do seu código, indicando claramente quais valores são constantes. Lembre-se: variáveis ​​const são implicitamente estáticas, devem ser inicializadas na declaração e seus valores devem ser constantes em tempo de compilação. Em comparação, as variáveis ​​somente leitura oferecem mais flexibilidade, mas são inicializadas em tempo de execução.

O IronPDF se destaca não apenas por seus recursos robustos de manipulação de PDFs, mas também por seu modelo de adoção flexível. Para desenvolvedores e organizações que desejam explorar suas funcionalidades, o IronPDF oferece um período de teste gratuito , proporcionando uma excelente oportunidade para avaliar seus recursos e facilidade de integração sem investimento inicial.

Quando estiver pronto para avançar com IronPDF para uso comercial, as opções de licenciamento começam a partir de $999. Essa estrutura de preços foi projetada para atender às necessidades de projetos de diferentes tamanhos e tipos, garantindo que você possa escolher a licença que melhor se adapte aos seus planos de desenvolvimento e distribuição.

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.