簡體   English   中英

靜態void main中的C#對象引用

[英]C# object reference in static void main

我有個問題。 我正在嘗試在靜態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*/ };
    ...

}

沒有完整的代碼很難確定,但是我猜測您的Progress函數不是靜態的。 如果將其更改為靜態,則該代碼應該可以工作。

您不能在靜態函數中引用類的非靜態成員。

您的代碼具有在Main方法之外定義的變量。 將其標記為靜態,一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM