Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
- Propriedades
- tipos de
- readonly
- Imutabilidade em C#: Parte Um - Tipos de Imutabilidade