Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez le const mot clé 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 au fil du temps. 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 doivent ê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#";
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 FullProductName = $"{Platform} - Language: {Language}";
La documentation de référence du langage C# décrit la version la plus récente du langage C#. Il contient également la documentation initiale des fonctionnalités dans les préversions publiques pour la prochaine version du langage.
La documentation identifie toute fonctionnalité introduite en premier dans les trois dernières versions de la langue ou dans les préversions publiques actuelles.
Conseil / Astuce
Pour savoir quand une fonctionnalité a été introduite en C#, consultez l’article sur l’historique des versions du langage C#.
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 que le compilateur peut convertir implicitement en type cible.
Une expression constante est une expression que le compilateur peut évaluer entièrement 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.
Vous pouvez déclarer plusieurs constantes dans une seule déclaration de constante, par exemple :
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. Vous ne pouvez initialiser un const champ qu’à la déclaration du champ. Vous pouvez initialiser un readonly champ à 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# :