J'ai écrit du code sans vous rendre compte pourquoi je peux accéder à des valeurs constantes au sein de la statique
méthodes. Pourquoi est-il possible d'accéder aux valeurs Image_file_extension code> dans const code> sans le déclarer comme
statique code>? p>
addimageodocument (...) code> p>
3 Réponses :
citant la spécification C # 3.0 (section §10.4 Constantes): P>
Même si const code> Les membres sont implicitement
statique code>. Ils appartiennent à la classe plutôt qu'à une instance spécifique. En conséquence, vous ne pouvez pas utiliser
this.myConstant code> mais
myClass.myConstant code>. P>
statiques code> membres forts>, a déclaration constante em> ni n'en oblige pas ni ne permet STRY> A
modificateur statique code>. C'est une erreur pour le même modificateur d'apparaître plusieurs fois dans une déclaration constante. P>
blockQuote>
Il suffit d'ajouter: essayez d'utiliser Static Const et votre compilateur se plaint probablement;)
@Samuel: Oui, Siree ça fait!
Je n'ai jamais pensé à const être implicitement i> statique ... merci Mehrdad.
Je m'attendrais à ce que, puisque une constante ne puisse pas changer d'instance-to-instance, cela les rend sans danger d'une méthode statique. P>
Pourquoi ne devrait-il pas être possible? Étant donné que la valeur est fixée au moment de la compilation, il n'existe aucune incohérence possible (comme il y aurait avec des variables ou des champs de code> lisonly code> pouvant être initialisé à différentes valeurs pour différentes instances au moment de l'exécution) p>