C# Constantes

Les constantes sont des valeurs fixes qui ne changent pas pendant l'exécution du programme. Les constantes peuvent être de n'importe quel type de données de base, comme les constantes entières, les constantes à virgule flottante, les constantes de caractères, les constantes de chaînes et les constantes d'énumération.

Les constantes peuvent être traitées comme des variables ordinaires, sauf que leurs valeurs ne peuvent pas être modifiées après leur définition.

Constantes entières

Les constantes entières peuvent être des constantes décimales, octales ou hexadécimales. Le préfixe spécifie la base : 0x ou 0X indique l'hexadécimal, 0 indique l'octal, et l'absence de préfixe indique le décimal.

Les constantes entières peuvent également avoir des suffixes, qui peuvent être une combinaison de U et L, où U et L représentent respectivement unsigned et long. Le suffixe peut être en majuscules ou en minuscules, et plusieurs suffixes peuvent être combinés dans n'importe quel ordre.

Voici quelques exemples de constantes entières :

212         /* 合法 */
215u        /* 合法 */
0xFeeL      /* 合法 */
078         /* 非法:8 不是一个八进制数字 */
032UU       /* 非法:不能重复后缀 */

Voici des exemples de constantes entières de différents types :

85         /* 十进制 */
0213       /* 八进制 */
0x4b       /* 十六进制 */
30         /* int */
30u        /* 无符号 int */
30l        /* long */
30ul       /* 无符号 long */

Constantes à virgule flottante

Une constante à virgule flottante se compose d'une partie entière, d'un point décimal, d'une partie fractionnaire et d'une partie exposant. Vous pouvez exprimer les constantes à virgule flottante sous forme décimale ou sous forme exponentielle.

Voici quelques exemples de constantes à virgule flottante :

3.14159       /* 合法 */
314159E-5L    /* 合法 */
510E          /* 非法:不完全指数 */
210f          /* 非法:没有小数或指数 */
.e55          /* 非法:缺少整数或小数 */

Lorsqu'elle est exprimée sous forme à virgule flottante, elle doit inclure un point décimal, un exposant, ou les deux. Lorsqu'elle est exprimée sous forme exponentielle, elle doit inclure une partie entière, une partie fractionnaire, ou les deux. Un exposant signé est représenté par e ou E.

Constantes de caractère

Les constantes de caractère sont placées entre guillemets simples, par exemple 'x', et peuvent être stockées dans une variable simple de type caractère. Une constante de caractère peut être un caractère ordinaire (par ex. 'x'), une séquence d'échappement (par ex. '\t'), ou un caractère universel (par ex. '\u02C0').

En C#, certains caractères ont une signification spéciale lorsqu'ils sont précédés d'une barre oblique inverse. Ils peuvent être utilisés pour représenter un saut de ligne (\n) ou une tabulation (\t). Voici quelques codes de séquence d'échappement :

Séquences d'échappementSignification
\\\ caractère
\'' caractère
\"" caractère
\?caractère ?
\aAlerte ou sonnerie
\bTouche Retour arrière
\fSaut de page
\nNouvelle ligne
\rRetour chariot
\tTabulation horizontale (tabulation)
\vTabulation verticale (tabulation)
\oooNombre octal d'un à trois chiffres
\xhh . . .Nombre hexadécimal d'un ou plusieurs chiffres

Voici quelques exemples de caractères de séquence d'échappement :

namespace EscapeChar
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello\tWorld\n\n");
            Console.ReadLine();
        }
    }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

Hello   World

Constantes de chaîne

Les constantes de chaîne sont placées entre guillemets doubles""à l'intérieur, ou placées entre@""à l'intérieur. Les constantes de chaîne contiennent des caractères similaires aux constantes de caractère, qui peuvent être : des caractères ordinaires, des séquences d'échappement et des caractères universels.

Lorsque vous utilisez des constantes de chaîne, vous pouvez couper une ligne très longue en plusieurs lignes, et vous pouvez utiliser des espaces pour séparer les parties.

Voici quelques exemples de constantes de chaîne. Les différentes formes listées ci-dessous représentent la même chaîne.

string a = "hello, world";                  // hello, world
string b = @"hello, world";               // hello, world
string c = "hello \t world";               // hello     world
string d = @"hello \t world";               // hello \t world
string e = "Joe said \"Hello\" to me";      // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me
string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
string h = @"\\server\share\file.txt";      // \\server\share\file.txt
string i = "one\r\ntwo\r\nthree";
string j = @"one
two
three";

Définir des constantes

Les constantes sont définies à l'aide du mot-cléconst. La syntaxe de définition d'une constante est la suivante :

const <data_type> <constant_name> = value;

Le code suivant montre comment définir et utiliser des constantes dans un programme :

Exemple

using System;

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);
    }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

x = 11, y = 22
c1 = 5, c2 = 10
autres extensions