En C, vous pouvez définir des constantes comme ceci
#define NUMBER 9
de sorte que partout où NUMBER apparaît dans le programme, il est remplacé par 9. Mais Visual C # ne le fait pas. Comment est-il fait?
public const int NUMBER = 9;
Vous auriez besoin de le mettre dans une classe quelque part, et l'utilisation serait ClassName.NUMBER
Vous ne pouvez pas faire cela en C #. Utilisez un const int
à la place.
static class Constants
{
public const int MIN_LENGTH = 5;
public const int MIN_WIDTH = 5;
public const int MIN_HEIGHT = 6;
}
// elsewhere
public CBox()
{
length = Constants.MIN_LENGTH;
width = Constants.MIN_WIDTH;
height = Constants.MIN_HEIGHT;
}
Vérifier Comment: définir des constantes en C # sur MSDN:
En C #, le préprocesseur
#define
directive ne peut pas être utilisé pour définir constantes de la manière qui est typiquement utilisé en C et C++.
en langue c: #define
(par exemple, #define counter 100)
en langage d'assemblage: equ (par exemple, counter equ 100)
dans le langage c #: selon la réference msdn : Vous utilisez #define
pour définir un symbole. Lorsque vous utilisez le symbole en tant qu'expression transmise à la directive #if
, l'expression est évaluée à true, comme le montre l'exemple suivant:
# define DEBUG
La directive #define
ne peut pas être utilisée pour déclarer des valeurs constantes comme cela est généralement fait en C et C++. Les constantes en C # sont mieux définies en tant que membres statiques d'une classe ou d'une structure. Si vous avez plusieurs constantes de ce type, envisagez de créer une classe distincte "Constantes" pour les contenir.
En C #, par bibliothèque MSDN, nous avons le mot-clé "const" qui effectue le travail du mot-clé "#define" dans d'autres langues.
"... lorsque le compilateur rencontre un identifiant constant dans le code source C # (par exemple, mois), il substitue la valeur littérale directement dans le code de langage intermédiaire qu'il produit." ( https://msdn.Microsoft.com/en-us/library/ms173119.aspx )
Initialisez les constantes au moment de la déclaration car elles ne peuvent pas être modifiées.
public const int cMonths = 12;