2009-10-12 8 views
1

Dans mon application console j'ai une variable locale qui fonctionne bienTransformer une variable locale dans une variable privée brise mon code C#

le moment, je fais une variable privée à la classe, je ne peux pas compiler, parce que il dit - une référence d'objet est nécessaire pour le membre ou la propriété non statique

Des idées quelle pourrait être la raison, c'est la première fois que j'ai vu cela.

+4

Je pense que nous montrer du code aiderait probablement. – Philippe

+1

En fait, nous n'en avons pas besoin dans ce cas, mais c'est toujours une bonne idée. – SLaks

Répondre

16

Déclarez votre variable privée comme statique. Vous essayez d'accéder à une variable non statique à partir d'une fonction statique. Notez que Main() est statique.

+0

génial ... stupide moi –

+2

Cela ne m'est jamais arrivé avant (je plaisante). –

5

Votre méthode Main est une méthode statique, ce qui signifie qu'elle n'est pas associée à une instance spécifique de votre classe Program. Lorsque vous avez ajouté un champ privé, il s'agissait d'une variable d'instance, ce qui signifie qu'il existe une copie associée à chaque instance de la classe.

Étant donné que votre méthode Main est statique, elle ne peut pas utiliser le membre d'instance sans une instance.

La solution la plus simple consiste à faire du champ un champ statique (ajoutez le mot-clé static à la déclaration).

Questions connexes