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. Voir également le mot clé readonly. Par exemple :

const int x = 0;
public const double gravitationalConstant = 6.673e-11;
private const string productName = "Visual C#";

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é const.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;

Exemple

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

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 = {0}", 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

Référence

Mots clés C#

Modificateurs (référence C#)

readonly (référence C#)

Concepts

Guide de programmation C#

Autres ressources

Référence C#