0

私は問題があります。static 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 に答える