2009-10-12 107 views
1

在我的控制台应用程序,我有工作的罚款把一个局部变量为私有变量打破我的C#代码

我让一个私有变量的类的那一刻,我不能编译局部变量,因为它说 - 非静态成员或财产需要对象引用

任何想法可能是什么原因,这是我第一次看到这个。

+4

我认为向我们展示一些代码会*可能*帮助。 – Philippe 2009-10-12 17:06:06

+1

其实,在这种情况下我们不需要它,但它仍然是一个好主意。 – SLaks 2009-10-12 17:08:59

回答

16

声明你的私有变量是静态的。你试图从一个静态函数访问一个非静态变量。请注意,Main()是静态的。

+0

真棒...傻我 – 2009-10-12 17:08:30

+2

这从来没有发生过我(开玩笑)。 – 2009-10-12 17:09:24

5

您的Main方法是一种静态方法,这意味着它不与您的Program类的特定实例关联。当你添加一个专用字段时,它是一个实例变量,这意味着它有一个与该类的每个实例关联的副本。

由于您的Main方法是静态的,因此无法使用没有实例的实例成员。

最简单的解决方案是将该字段设置为静态字段(将static关键字添加到声明中)。