bonjour,
je veux définir des constantes qui seront utilisé par toutes les classes d'une DLL en C# ( comme en C++ #define sert à ça)
Merci d'avance
Version imprimable
bonjour,
je veux définir des constantes qui seront utilisé par toutes les classes d'une DLL en C# ( comme en C++ #define sert à ça)
Merci d'avance
Il faut créer une classe static :
Pour y accéder :Code:
1
2
3
4
5 static public MyClass { static double PI = 3.14; }
Code:
1
2 MyClass.PI
j'ai essayer mais visual ne vois pas les constantes
ce n'est pas vraiment une constante que PerpetualSnow nous propose, mais ca peut très bien aller aussi
c'est une variable de classe partagé, à la différence d'une constante elle peut etre modifiée
Code:
1
2
3
4 public static class module { public const string a = "11"; }
Sorry,
Ma réponse était imprécise.
Encore mieux que "const" dans le cas ou ces constantes sont utilisées par d'autres assemblies, c'est "static readonly".
aucune différence ... une constante est accessible aussi si elle est publique
Malheureusement, il y a bien une différence.
const et static readonly ne se comportent pas de la même façon.
avec const, les occurences de la constante sont remplacées à la compilation, avec static readonly, on conserve l'appel du champ.
Imaginons que tu compiles un assembly A définissant une constante, et un assembly B qui l'utilise. Par la suite, tu modifies la constante dans l'assembly A, et tu ne relivre que A, mais pas B. (typique dans le cas d'une librairie - A - et d'une application l'utilisant - B -)
:arrow: Si tu utilises const, B utilisera toujours l'ancienne valeur.
:arrow: Si tu utilises static readonly, B utilisera la nouvelle.
D'où la règle que je m'impose :
:arrow: const => private
:arrow: tout le reste => static readonly
intéressant
EDIT
Autant pour moi, j'ai juste rapidement parcouru le post :oops:Citation:
Ca a juste été mentionné plusieurs fois au dessus...