Partilhar via


Constantes (Guia de Programação em C#)

As constantes são valores imutáveis que são conhecidos em tempo de compilação e não mudam durante a vida útil do programa. As constantes são declaradas com o modificador const . Somente os tipos internos do C# podem ser declarados como const. Constantes de tipo de referência diferentes só String podem ser inicializadas com um valor nulo . Os tipos definidos pelo usuário, incluindo classes, structs e arrays, não podem ser const. Use o modificador somente leitura para criar uma classe, struct ou matriz que é inicializada uma vez em tempo de execução (por exemplo, em um construtor) e depois disso não pode ser alterada.

C# não suporta const métodos, propriedades ou eventos.

O tipo enum permite que você defina constantes nomeadas para tipos internos integrais (por exemplo int, , uint, long, e assim por diante). Para obter mais informações, consulte enum.

As constantes devem ser inicializadas à medida que são declaradas. Por exemplo:

class Calendar1
{
    public const int Months = 12;
}

Neste exemplo, a constante Months é sempre 12, e não pode ser alterada nem mesmo pela própria classe. Na verdade, quando o compilador encontra um identificador constante no código-fonte C# (por exemplo, Months), ele substitui o valor literal diretamente no código de linguagem intermediária (IL) que ele produz. Como não há nenhum endereço variável associado a uma constante em tempo de execução, const os campos não podem ser passados por referência e não podem aparecer como um valor L em uma expressão.

Nota

Tenha cuidado ao se referir a valores constantes definidos em outro código, como DLLs. Se uma nova versão da DLL definir um novo valor para a constante, seu programa ainda manterá o valor literal antigo até que ele seja recompilado em relação à nova versão.

Várias constantes do mesmo tipo podem ser declaradas ao mesmo tempo, por exemplo:

class Calendar2
{
    public const int Months = 12, Weeks = 52, Days = 365;
}

A expressão usada para inicializar uma constante pode se referir a outra constante se não criar uma referência circular. Por exemplo:

class Calendar3
{
    public const int Months = 12;
    public const int Weeks = 52;
    public const int Days = 365;

    public const double DaysPerWeek = (double) Days / (double) Weeks;
    public const double DaysPerMonth = (double) Days / (double) Months;
}

As constantes podem ser marcadas como públicas, privadas, protegidas, internas, protegidas internas ou privadas. Esses modificadores de acesso definem como os usuários da classe podem acessar a constante. Para obter mais informações, consulte Modificadores de acesso.

As constantes são acessadas como se fossem campos estáticos porque o valor da constante é o mesmo para todas as instâncias do tipo. Você não usa a static palavra-chave para declará-los. As expressões que não estão na classe que define a constante devem usar o nome da classe, um ponto e o nome da constante para acessar a constante. Por exemplo:

int birthstones = Calendar.Months;

Especificação da linguagem C#

Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso do C#.

Consulte também