web-dev-qa-db-fra.com

Comment définir des constantes dans Visual C # comme #define en C?

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?

30
neuromancer
public const int NUMBER = 9;

Vous auriez besoin de le mettre dans une classe quelque part, et l'utilisation serait ClassName.NUMBER

58
Jimmeh

Vous ne pouvez pas faire cela en C #. Utilisez un const int à la place.

16
Mark Byers
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;  
}
13
Rush

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++.

13
Vinz

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.

1
Alireza

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;
0
Bobby