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

静态void main中的C#对象引用,c#,C#,我有个问题。我试图订阅静态void main中的一个事件,但收到错误“非静态字段、方法等需要对象引用” 以下是代码的一部分: public static void Main(string[] args) { ... Factorial Fact = new Factorial(); Fact.Progression += new Factorial.ProgressEventHandler(Progress); ...

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

以下是代码的一部分:

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

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

    }
我如何消除这个错误?
提前感谢

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

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

尝试内联执行

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

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

}
尝试内联操作

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

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

}

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


您的代码在Main方法之外定义了变量。将这些标记为静态,一切都应该正常。

静态函数中不能有对类的非静态成员的引用

您的代码在Main方法之外定义了变量。将这些标记为静态,一切都应该正常