Palabra clave const
Use la palabra clave const
para declarar un campo constante o una constante local. Los campos y variables locales constantes no son variables y no se pueden modificar. Las constantes pueden ser números, valores booleanos, cadenas o una referencia nula. No cree una constante para representar información que esperas que cambie en algún momento. Por ejemplo, no use un campo constante para almacenar el precio de un servicio, un número de versión del producto o el nombre de marca de una empresa. Estos valores pueden cambiar con el tiempo y, dado que los compiladores propagan constantes, otro código compilado con las bibliotecas tendrá que volver a compilarse para ver los cambios. Vea también la palabra clave readonly. Por ejemplo:
const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";
cadenas interpoladas pueden ser constantes, si todas las expresiones usadas también son cadenas constantes. Esta característica puede mejorar el código que compila cadenas constantes:
const string Language = "C#";
const string Platform = ".NET";
const string FullProductName = $"{Platform} - Language: {Language}";
Observaciones
El tipo de una declaración constante especifica el tipo de los miembros que introduce la declaración. El inicializador de una constante local o un campo constante debe ser una expresión constante que se pueda convertir implícitamente al tipo de destino.
Una expresión constante es una expresión que se puede evaluar completamente en tiempo de compilación. Por lo tanto, los únicos valores posibles para las constantes de tipos de referencia son cadenas y una referencia nula.
La declaración de constante puede declarar varias constantes, como:
public const double X = 1.0, Y = 2.0, Z = 3.0;
El modificador static
no se permite en una declaración constante.
Una constante puede participar en una expresión constante, como se indica a continuación:
public const int C1 = 5;
public const int C2 = C1 + 100;
Nota
La palabra clave de solo lectura difiere de la palabra clave const
. Un campo const
solo se puede inicializar en la declaración del campo. Un campo readonly
se puede inicializar en la declaración o en un constructor. Por lo tanto, readonly
campos pueden tener valores diferentes en función del constructor usado. Además, aunque un campo const
es una constante en tiempo de compilación, el campo readonly
se puede usar para constantes en tiempo de ejecución, como en esta línea: public static readonly uint l1 = (uint)DateTime.Now.Ticks;
Ejemplos
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()
{
var mC = new SampleClass(11, 22);
Console.WriteLine($"x = {mC.x}, y = {mC.y}");
Console.WriteLine($"C1 = {SampleClass.C1}, C2 = {SampleClass.C2}");
}
}
/* Output
x = 11, y = 22
C1 = 5, C2 = 10
*/
En el ejemplo siguiente se muestra cómo declarar una constante local:
public class SealedTest
{
static void Main()
{
const int C = 707;
Console.WriteLine($"My local constant = {C}");
}
}
// Output: My local constant = 707
Especificación del lenguaje C#
Para obtener más información, consulte las secciones siguientes de la especificación del lenguaje C# :