Const (referência de C#)
O const palavra-chave é usada para modificar uma declaração de um campo ou uma variável local. Especifica que o valor do campo ou a variável local é constante, o que significa que não pode ser modificado. Por exemplo:
const int x = 0;
public const double gravitationalConstant = 6.673e-11;
private const string productName = "Visual C#";
Comentários
O tipo de declaração de constante Especifica o tipo dos membros introduzido pela declaração. Uma expressão de constante deve produzir um valor do tipo de destino ou de um tipo que possa ser implicitamente convertido para o tipo de destino.
Uma expressão constante é uma expressão que pode ser completamente avaliada em tempo de compilação. Portanto, os valores possíveis somente para constantes de tipos de referência são string e null.
A declaração de constante pode declarar constantes vários, tais como:
public const double x = 1.0, y = 2.0, z = 3.0;
O static modificador não é permitido em uma declaração de constante.
Uma constante pode participar em uma expressão de constante da seguinte maneira:
public const int c1 = 5;
public const int c2 = c1 + 100;
Observação |
---|
O readonly palavra-chave difere do const palavra-chave. A const campo somente pode ser inicializado na declaração do campo. A readonly campo pode ser inicializado na declaração ou em um construtor. Portanto, readonly campos podem ter valores diferentes dependendo do construtor usado. Além disso, embora um const campo é uma constante de tempo de compilação, o readonly campo 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 C# Language Specification A especificação de linguagem é a fonte definitiva para a sintaxe e o uso de C#.