静态void main中的C#对象引用

时间:2012-07-31 13:59:43

标签: c#

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

以下是代码的一部分:

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

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

    }

如何摆脱错误? 提前致谢

3 个答案:

答案 0 :(得分:3)

尝试内联。

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

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

}

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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