Compartir a través de


const (Referencia de C#)

La palabra clave const se usa para declarar un campo constante o una local constante. Los campos y 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 de producto o el nombre comercial de una compañía. Estos valores pueden cambiar con el tiempo y, como los compiladores propagan las constantes, otro código compilado con sus bibliotecas tendrán 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#";

Comentarios

El tipo de una declaración constante especifica el tipo de los miembros que la declaración presenta. El inicializador de una local constante o de 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 por completo en tiempo de compilación. Por lo tanto, los únicos valores posibles para las constantes de tipos de referencia son string y una referencia nula.

La declaración de constante puede declarar varias constantes, tales como:

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

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

Una constante puede participar en una expresión constante, de la siguiente manera:

public const int c1 = 5;
public const int c2 = c1 + 100;
NotaNota

La palabra clave readonly 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, los campos readonly pueden tener diferentes valores en función del constructor que se use.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;

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 demuestra cómo usar 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, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.

Vea también

Referencia

Palabras clave de C#

Modificadores (Referencia de C#)

readonly (Referencia de C#)

Conceptos

Guía de programación de C#

Otros recursos

Referencia de C#