Meilleures pratiques pour l'utilisation de variables globales dans C #

Quelqu'un a dit une fois:

une "variable globale" est vraiment une variable que vous créez simplement "garder certaines informations", parce que votre modèle d'objet est faible, et vous n'avez pas trouvé un "vrai but" pour la variable d'exister. Les variables globales sont presque toujours un signe d'une plus grande architectural déformation.

Cela pourrait être vrai. Mais je ne sais pas du tout un bon exemple d'un gros et bon programme sans variables globales, et certainement pas utilisé comme peu comme suggéré ci-dessus. Portée est la clé. Vous pouvez dire dans un programme avec une seule classe que ses paramètres sont pas les variables globales. Mais ils le sont.

De toute façon...

Je suis toujours à saisir le concept de singleton et, autant que je peux dire, ils effectivement n'ont pas de sens en C#. Aussi, j'ai l'impression que lorsqu'un état global ne peut pas être évitée nous conseillons d'éviter d'utiliser simplement un public de classe pleine de propriétés statiques:

Donc, si pas des singletons, ni une classe publique, ce qui devrait nous faire à l'échelle de vars en C#?

Et quand sommes-nous censés les utiliser? En supposant qu'ils ont le plus probablement ne peuvent pas être évités. Jamais.

Et pourquoi devrions-nous éviter l'utilisation d'un statique de la classe ou static en général? Si c'est effectivement le cas pour C#.

En une phrase: Quelles sont les meilleures pratiques sur l'utilisation des variables globales dans Csharp?

source d'informationauteur cregox