Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las constantes son valores inmutables que se conocen en tiempo de compilación y no cambian durante la vida del programa. Las constantes se declaran con el modificador const . Solo los tipos integrados de C# se pueden declarar como const
. Las constantes de tipo de referencia distintas de String solo se pueden inicializar con un valor NULL . Los tipos definidos por el usuario, incluidas las clases, las estructuras y las matrices, no pueden ser const
. Use el modificador readonly para crear una clase, estructura o matriz que se inicializa una vez en tiempo de ejecución (por ejemplo, en un constructor) y, después, no se puede cambiar.
C# no admite const
métodos, propiedades ni eventos.
El tipo de enumeración permite definir constantes con nombre para tipos integrados enteros (por ejemplo int
, uint
, long
, etc.). Para obtener más información, consulte enum.
Las constantes deben inicializarse a medida que se declaran. Por ejemplo:
class Calendar1
{
public const int Months = 12;
}
En este ejemplo, la constante Months
siempre es 12 y la propia clase no puede cambiarla. De hecho, cuando el compilador encuentra un identificador constante en el código fuente de C# (por ejemplo, Months
), sustituye el valor literal directamente en el código de lenguaje intermedio (IL) que genera. Dado que no hay ninguna dirección de variable asociada a una constante en tiempo de ejecución, const
los campos no se pueden pasar por referencia y no pueden aparecer como un valor l en una expresión.
Nota:
Tenga cuidado al hacer referencia a valores constantes definidos en otro código, como archivos DLL. Si una nueva versión del archivo DLL define un nuevo valor para la constante, el programa seguirá manteniendo el valor literal anterior hasta que se vuelva a compilar con la nueva versión.
Se pueden declarar varias constantes del mismo tipo al mismo tiempo, por ejemplo:
class Calendar2
{
public const int Months = 12, Weeks = 52, Days = 365;
}
La expresión que se usa para inicializar una constante puede hacer referencia a otra constante si no crea una referencia circular. Por ejemplo:
class Calendar3
{
public const int Months = 12;
public const int Weeks = 52;
public const int Days = 365;
public const double DaysPerWeek = (double) Days / (double) Weeks;
public const double DaysPerMonth = (double) Days / (double) Months;
}
Las constantes se pueden marcar como públicas, privadas, protegidas, internas, protegidas internas o privadas protegidas. Estos modificadores de acceso definen cómo los usuarios de la clase pueden acceder a la constante. Para obtener más información, vea Modificadores de acceso.
Se accede a las constantes como si fueran campos estáticos porque el valor de la constante es el mismo para todas las instancias del tipo. No se usa la static
palabra clave para declararlas. Las expresiones que no están en la clase que define la constante deben usar el nombre de clase, un punto y el nombre de la constante para tener acceso a la constante. Por ejemplo:
int birthstones = Calendar.Months;
Especificación del lenguaje C#
Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es el origen definitivo de la sintaxis y el uso de C#.