Partager via


Mot clé const

Vous utilisez le mot clé const pour déclarer un champ constant ou une constante locale. Les champs constants et les variables locales ne sont pas variables et ne peuvent pas être modifiés. Les constantes peuvent être des nombres, des valeurs booléennes, des chaînes ou une référence null. Ne créez pas de constante pour représenter les informations que vous prévoyez de modifier à tout moment. Par exemple, n’utilisez pas de champ constant pour stocker le prix d’un service, d’un numéro de version de produit ou du nom de marque d’une entreprise. Ces valeurs peuvent changer au fil du temps et, étant donné que les compilateurs propagent des constantes, d’autres codes compilés avec vos bibliothèques devront être recompilés pour voir les 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#";

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 FullProductName = $"{Platform} - Language: {Language}";

Remarques

Le type d’une déclaration constante spécifie le type des membres introduits par la déclaration. L’initialiseur d’une constante locale ou d’un champ constant doit être une expression constante qui peut être convertie implicitement en type cible.

Une expression constante est une expression qui peut être entièrement évaluée au moment de la compilation. Par conséquent, les seules valeurs possibles pour les constantes des types de référence sont des chaînes et une référence Null.

La déclaration de constante peut déclarer plusieurs constantes, telles que :

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 participer à une expression constante, comme suit :

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

Remarque

Le mot clé en lecture seule diffère du mot clé const. Un champ const ne peut être initialisé qu’à la déclaration du champ. Un champ readonly peut être initialisé à la déclaration ou dans un constructeur. Par conséquent, readonly champs peuvent avoir des valeurs différentes en fonction du constructeur utilisé. En outre, bien qu’un champ const soit une constante au moment de la compilation, le champ readonly peut être utilisé pour les constantes d’exécution, comme dans cette ligne : 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
*/

L’exemple suivant montre comment déclarer une constante locale :

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, consultez les sections suivantes de la spécification du langage C# :

Voir aussi