const (Referencia de C#)

Actualización: noviembre 2007

La palabra clave const se utiliza para modificar una declaración de un campo o una variable local. Especifica que el valor del campo o de la variable local es constante, o sea que no se puede modificar. Por ejemplo:

const int x = 0;
public const double gravitationalConstant = 6.673e-11;
private const string productName = "Visual C#";

Comentarios

El tipo de una declaración de constantes especifica el tipo de los miembros que se incluyen en la declaración. Una expresión constante debe dar un valor del tipo destino o de un tipo que se pueda convertir implícitamente en el tipo destino.

Una expresión constante es una expresión que se puede evaluar completamente en tiempo de compilación. Por consiguiente, los únicos valores posibles para constantes de tipos de referencia son string, y null.

La declaración de constante puede declarar varias constantes, por ejemplo:

public const double x = 1.0, y = 2.0, z = 3.0;

El modificador static no se puede utilizar en una declaración de constante.

Una constante puede participar en una expresión constante, por ejemplo:

public const int c1 = 5;
public const int c2 = c1 + 100;
Nota:

La palabra clave readonly es difiere de la palabra clave const. Un campo const sólo puede inicializarse en la declaración del campo. Un campo readonly puede inicializarse en la declaración o en un constructor. Por lo tanto, los campos readonly pueden tener diferentes valores en función del constructor que se utilice. Asimismo, aunque un campo const sea una constante en tiempo de compilación, el campo readonly puede utilizarse para constantes en tiempo de ejecución, como se muestra en la línea siguiente: public static readonly uint l1 = (uint)DateTime.Now.Ticks;

Ejemplo

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 ejemplo muestra cómo se usan las constantes como variables locales.

public class SealedTest
{
    static void Main()
    {
        const int c = 707;
        Console.WriteLine("My local constant = {0}", c);
    }
}
// Output: My local constant = 707

Especificación del lenguaje C#

Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.

  • 6.1.6 Conversiones implícitas de expresión constante

  • 8.5.2 Declaraciones de constante local

Vea también

Conceptos

Guía de programación de C#

Referencia

Palabras clave de C#

Modificadores (Referencia de C#)

readonly (Referencia de C#)

Otros recursos

Referencia de C#