0

我有个问题。我正在尝试订阅静态 void main 中的事件,但出现错误“非静态字段、方法等需要对象引用”

这是代码的一部分:

public static void Main(string[] args)
    {
        ...

        Factorial Fact = new Factorial();
        Fact.Progression += new Factorial.ProgressEventHandler(Progress);
        ...

    }

如何摆脱错误?提前致谢

4

3 回答 3

3

尝试内联。

public static void Main(string[] args)
{
    ...

    Factorial Fact = new Factorial();
    Fact.Progression += (s,e) => { /*Do stuff*/ };
    ...

}
于 2012-07-31T14:03:09.520 回答
2

如果没有完整的代码,很难确定,但我猜你的Progress函数不是静态的。如果将其更改为静态,则该代码应该可以工作。

于 2012-07-31T14:01:55.583 回答
1

您不能在静态函数中引用类的非静态成员。

您的代码在 Main 方法之外定义了变量。将它们标记为静态,一切都应该没问题。

于 2012-07-31T14:03:12.033 回答