const (référence C#)

Vous utilisez le mot clé const pour déclarer un champ constant ou un élément local constant. Les champs et les éléments locaux constants ne sont pas des variables et ne peuvent pas être modifiés. Les constantes peuvent être des chiffres, des valeurs booléennes, des chaînes ou une référence null. Ne créez pas une constante pour représenter des informations qui doivent être modifiées. Par exemple, n'utilisez pas un champ constant pour stocker le prix d'un service, le numéro de version du produit ou le nom de la marque d'une société. Ces valeurs peuvent changer dans le temps, et dans la mesure où les compilateurs propagent les constantes, le code compilé avec vos bibliothèques devra être recompilé pour refléter ces modifications. Consultez également le mot clé readonly. Par exemple :

const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";

À compter de C# 10, les chaînes interpolées peuvent être des constantes, si toutes les expressions utilisées sont également des chaînes constantes. Cette fonctionnalité peut améliorer le code qui génère des chaînes constantes :

const string Language = "C#";
const string Platform = ".NET";
const string Version = "10.0";
const string FullProductName = $"{Platform} - Language: {Language} Version: {Version}";

Notes

Le type d'une déclaration constante indique le type des membres introduit par la déclaration. L'initialiseur d'un élément local constant ou d'un champ constant doit être une expression constante qui peut être implicitement convertie en type cible.

Une expression constante est une expression qui peut être complètement évaluée au moment de la compilation. C'est pourquoi, les seules valeurs possibles pour les constantes des types référence sont string et une référence null.

La déclaration constante peut déclarer plusieurs constantes, notamment :

public const double X = 1.0, Y = 2.0, Z = 3.0;

Le modificateur static n'est pas autorisé dans une déclaration constante.

Une constante peut être utilisée dans une expression constante, comme suit :

public const int C1 = 5;
public const int C2 = C1 + 100;

Notes

Le mot clé readonly est différent du mot clé . Un champ const ne peut être initialisé qu'au moment de la déclaration du champ. Un champ readonly peut être initialisé dans la déclaration ou dans un constructeur. C'est pourquoi, les champs readonly peuvent avoir des valeurs différentes en fonction du constructeur utilisé. De même, bien qu'un champ const soit une constante au moment de la compilation, le champ readonly peut être utilisé pour des constantes au moment de l'exécution, comme ci-après : public static readonly uint l1 = (uint)DateTime.Now.Ticks;

Exemples

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
*/

Cet exemple montre comment utiliser des constantes en tant que variables locales.

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

spécification du langage C#

Pour plus d'informations, voir la spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.

Voir aussi