首頁 > 後端開發 > C++ > 如何解決在 C# 中存取非靜態成員時出現「需要物件參考」錯誤?

如何解決在 C# 中存取非靜態成員時出現「需要物件參考」錯誤?

Barbara Streisand
發布: 2024-12-29 12:00:21
原創
676 人瀏覽過

How to Resolve

解決非靜態成員存取的「需要物件參考」錯誤

在單獨的函數中呼叫計時器回呼時,可能會遇到錯誤「An object存取非靜態欄位、方法或屬性需要引用...」在靜態方法或靜態方法中存取非靜態類別成員時會出現這種情況

要解決此問題,有兩個選項:

  1. 將回調和成員變數宣告為靜態:

    • 將定時器回調和成員變數設為靜態,如下在:
    public static void Main (string[] args)
    {
        Timer _timer = null;
        static TimeSpan _millisecs;
        ...
    }
    登入後複製
    • 這允許在沒有物件實例的情況下存取成員變數和回呼。
  2. 建立實例類別的:

    • 實例化包含非靜態成員的類別的物件:
    MainClass instance = new MainClass();
    btn.Clicked += instance.StartClick;
    btn_stop.Clicked += instance.StopClick;
    登入後複製
    • 回呼現在可以透過實例物件存取非靜態成員。

這些選項之間的選擇取決於應用程式的要求。如果首選全域狀態管理,則可以使用靜態成員。或者,建立實例可以提供更好的可測試性和封裝性。

了解錯誤訊息的原因有助於做出明智的決策。發生錯誤的原因是非靜態成員需要存取物件實例,而靜態成員則不需要。

以上是如何解決在 C# 中存取非靜態成員時出現「需要物件參考」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板