Compartilhar via


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

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, exceto String, só podem ser inicializadas com um valor nulo. Tipos definidos pelo usuário, incluindo classes, structs e matrizes, não podem ser const. Use o modificador readonly 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.

O C# não dá suporte const a métodos, propriedades ou eventos.

O tipo de enumeração 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 conforme 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 até 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 il (linguagem intermediária) 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.

Observação

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 referir-se a outra constante se ela 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 protegidas. 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 palavra-chave static para declará-las. Expressões que não estão na classe que define a constante devem usar o nome da classe, um período 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 de idioma é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também