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





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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 static public MyClass { static double PI = 3.14; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public static class module { public const string a = "11"; }
Encore mieux que "const" dans le cas ou ces constantes sont utilisées par d'autres assemblies, c'est "static readonly".
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 -)
Si tu utilises const, B utilisera toujours l'ancienne valeur.
Si tu utilises static readonly, B utilisera la nouvelle.
D'où la règle que je m'impose :
const => private
tout le reste => static readonly
A lire : Les règles du forum
EDIT
Autant pour moi, j'ai juste rapidement parcouru le postCa a juste été mentionné plusieurs fois au dessus...![]()
A lire : Les règles du forum
Partager