En C#, las constantes son valores que no cambian durante la ejecución del programa. Se definen utilizando la palabra clave const
. Una constante debe ser asignada al momento de su declaración, y su valor no puede ser modificado posteriormente.
const
La forma más común de declarar una constante en C# es usando la palabra clave const
.
Sintaxis:
const Tipo NombreConstante = Valor;
int
, double
, string
).
Ejemplo:
using System;
class Program {
const double Pi = 3.1416; // Declarar una constante
const string AppName = "MiAplicación";
static void Main() {
Console.WriteLine($"El valor de Pi es: {Pi}");
Console.WriteLine($"Nombre de la aplicación: {AppName}");
}
}
Salida:
El valor de Pi es: 3.1416
Nombre de la aplicación: MiAplicación
const
1. Inmutabilidad: Una vez declarada, su valor no puede cambiar.
2. Tiempo de compilación: Su valor debe ser conocido en tiempo de compilación.
3. Acceso global: Las constantes son static
por naturaleza, no requieren una instancia de clase para ser accesibles.
Se pueden declarar constantes dentro de una clase para que pertenezcan al ámbito de esa clase.
Ejemplo:
class MathConstants {
public const double Pi = 3.1416;
public const double Euler = 2.718;
}
class Program {
static void Main() {
Console.WriteLine($"Pi: {MathConstants.Pi}");
Console.WriteLine($"Euler: {MathConstants.Euler}");
}
}
readonly
para valores constantes en tiempo de ejecución
Si necesitas valores que no cambien pero cuyo valor se asigna en tiempo de ejecución (no en compilación), utiliza la palabra clave readonly
.
Ejemplo:
class Configuracion {
public static readonly string FechaInicio = DateTime.Now.ToString("yyyy-MM-dd");
}
class Program {
static void Main() {
Console.WriteLine($"Fecha de inicio: {Configuracion.FechaInicio}");
}
}
const
y readonly
Característica |
const
|
readonly
|
---|---|---|
Modificación | No puede cambiar. | No puede cambiar después de la inicialización. |
Tiempo de asignación | Solo en tiempo de compilación. | Puede ser asignado en tiempo de ejecución. |
Contexto |
Siempre static .
|
Puede ser estático o de instancia. |
Para más detalles, consulta la documentación oficial de C#.
Jorge García
Fullstack developer