const (Référence C#)

Mise à jour : novembre 2007

Le mot clé const est utilisé pour modifier une déclaration d'un champ ou d'une variable locale. Il indique que la valeur du champ ou de la variable locale est constante, ce qui signifie qu'elle ne peut pas être modifiée. 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 de constante spécifie le type des membres introduits par la déclaration. Une expression constante doit produire une valeur du type cible ou d'un type qui peut être implicitement converti au 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 null.

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

public const double x = 1.0, y = 2.0, z = 3.0;

Le modificateur static n'est pas autorisé dans une déclaration de 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é readonly est différent du mot clé const. Un champ const ne peut être initialisé que dans sa déclaration. Un champ readonly peut être initialisé soit dans la déclaration, soit dans un constructeur. C'est pourquoi les champs readonly peuvent avoir des valeurs différentes en fonction du constructeur utilisé. De plus, alors qu'un champ const est une constante de compilation, le champ readonly peut être utilisé pour les constantes à l'exécution, comme dans la ligne suivante : 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 illustre l'utilisation de 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, consultez les sections suivantes dans Spécifications du langage C#.

  • 6.1.6 Conversions d'expression constante implicites

  • 8.5.2 Déclarations de constante locale

Voir aussi

Concepts

Guide de programmation C#

Référence

Mots clés C#

Modificateurs (Référence C#)

readonly (Référence C#)

Autres ressources

Référence C#