我有问题。我正在尝试订阅静态void main中的事件,但是我收到错误“非静态字段,方法等需要对象引用”
以下是代码的一部分:
public static void Main(string[] args)
{
...
Factorial Fact = new Factorial();
Fact.Progression += new Factorial.ProgressEventHandler(Progress);
...
}
如何摆脱错误? 提前致谢
答案 0 :(得分:3)
尝试内联。
public static void Main(string[] args)
{
...
Factorial Fact = new Factorial();
Fact.Progression += (s,e) => { /*Do stuff*/ };
...
}
答案 1 :(得分:2)
如果没有完整的代码,很难确定,但我猜你的Progress
函数不是静态的。如果将其更改为静态,则该代码应该有效。
答案 2 :(得分:1)
您不能在静态函数中引用类的非静态成员。
您的代码具有在Main方法之外定义的变量。将这些标记为静态,一切都应该没问题。