Partager via


Constantes (Guide de programmation C#)

Les constantes sont des valeurs immuables connues au moment de la compilation et ne changent pas pour la durée du programme. Les constantes sont déclarées avec le modificateur const . Seuls les types intégrés C# peuvent être déclarés en tant que const. Les constantes de type référence autres que celles ne String peuvent être initialisées qu’avec une valeur Null . Les types définis par l’utilisateur, y compris les classes, les structs et les tableaux, ne peuvent pas être const. Utilisez le modificateur en lecture seule pour créer une classe, un struct ou un tableau initialisé une fois au moment de l’exécution (par exemple dans un constructeur) et par la suite ne peut pas être modifié.

C# ne prend pas en charge les méthodes, propriétés ou événements const.

Le type d’énumération vous permet de définir des constantes nommées pour les types intégrés intégraux (par exemple int, , uint, longetc.). Pour plus d’informations, voir enum.

Les constantes doivent être initialisées à mesure qu’elles sont déclarées. Par exemple:

class Calendar1
{
    public const int Months = 12;
}

Dans cet exemple, la constante Months est toujours 12 et elle ne peut pas être modifiée même par la classe elle-même. En fait, lorsque le compilateur rencontre un identificateur constant dans le code source C# (par exemple), Monthsil remplace la valeur littérale directement dans le code il (Intermediate Language) qu’il produit. Étant donné qu’aucune adresse de variable n’est associée à une constante au moment de l’exécution, const les champs ne peuvent pas être passés par référence et ne peuvent pas apparaître comme une valeur l dans une expression.

Remarque

Soyez prudent lorsque vous faites référence à des valeurs constantes définies dans d’autres codes, tels que des DLL. Si une nouvelle version de la DLL définit une nouvelle valeur pour la constante, votre programme conserve toujours l’ancienne valeur littérale jusqu’à ce qu’elle soit recompilée par rapport à la nouvelle version.

Plusieurs constantes du même type peuvent être déclarées en même temps, par exemple :

class Calendar2
{
    public const int Months = 12, Weeks = 52, Days = 365;
}

L’expression utilisée pour initialiser une constante peut faire référence à une autre constante si elle ne crée pas de référence circulaire. Par exemple:

class Calendar3
{
    public const int Months = 12;
    public const int Weeks = 52;
    public const int Days = 365;

    public const double DaysPerWeek = (double) Days / (double) Weeks;
    public const double DaysPerMonth = (double) Days / (double) Months;
}

Les constantes peuvent être marquées comme publiques, privées, protégées, internes, protégées internes ou privées. Ces modificateurs d’accès définissent la façon dont les utilisateurs de la classe peuvent accéder à la constante. Pour plus d’informations, consultez Modificateurs d’accès.

Les constantes sont accessibles comme si elles étaient des champs statiques , car la valeur de la constante est la même pour toutes les instances du type. Vous n’utilisez pas le static mot clé pour les déclarer. Les expressions qui ne figurent pas dans la classe qui définit la constante doivent utiliser le nom de la classe, un point et le nom de la constante pour accéder à la constante. Par exemple:

int birthstones = Calendar.Months;

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