const (Referência de C#)
Use a palavra-chave const para declarar um campo constante ou um local constante. Campos e locais constantes não são variáveis e não podem ser modificados. As constantes podem ser números, valores boolianos, cadeias de caracteres ou uma referência nula. Não crie uma constante para representar informações que você espera mudar a qualquer momento. Por exemplo, não use um campo constante para armazenar o preço de um serviço, um número de versão de produto ou a marca de uma empresa. Esses valores podem mudar ao longo do tempo e como os compiladores propagam constantes, outro código compilado com as bibliotecas terá que ser recompilado para ver as alterações. Veja também a palavra-chave somente leitura. Por exemplo:
const int x = 0;
public const double gravitationalConstant = 6.673e-11;
private const string productName = "Visual C#";
Comentários
O tipo de uma declaração constante especifica o tipo dos membros que a declaração apresenta. O inicializador de um local ou um campo constante deve ser uma expressão constante que pode ser implicitamente convertida para o tipo de destino.
Uma expressão constante é uma expressão que pode ser completamente avaliada em tempo de compilação. Portanto, os únicos valores possíveis para as constantes de tipos de referência são string e uma referência nula.
A declaração constante pode declarar constantes múltiplas como:
public const double x = 1.0, y = 2.0, z = 3.0;
O modificador static não é permitido em uma declaração constante.
A constante pode fazer parte de uma expressão constante, como a seguir:
public const int c1 = 5;
public const int c2 = c1 + 100;
Dica
A palavra-chave somente leitura é diferente da palavra-chave const.O campo const pode ser inicializado apenas na declaração do campo.Um campo readonly pode ser inicializado na declaração ou em um construtor.Portanto, campos readonly podem ter valores diferentes dependendo do construtor usado.Além disso, embora um campo const seja uma constante em tempo de compilação, o campo readonly pode ser usado para constantes de tempo de execução, como nesta linha: public static readonly uint l1 = (uint)DateTime.Now.Ticks;
Exemplo
public class ConstTest
{
class SampleClass
{
public int x;
public int y;
public const int c1 = 5;
public const int c2 = c1 + 5;
public SampleClass(int p1, int p2)
{
x = p1;
y = p2;
}
}
static void Main()
{
SampleClass mC = new SampleClass(11, 22);
Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);
Console.WriteLine("c1 = {0}, c2 = {1}",
SampleClass.c1, SampleClass.c2 );
}
}
/* Output
x = 11, y = 22
c1 = 5, c2 = 10
*/
Este exemplo demonstra como usar constantes como variáveis locais.
public class SealedTest
{
static void Main()
{
const int c = 707;
Console.WriteLine("My local constant = {0}", c);
}
}
// Output: My local constant = 707
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 de C#.
Consulte também
Referência
Modificadores (Referência de C#)