Beim Aufrufen der Timer-Rückrufe in separaten Funktionen kann der Fehler „Ein Objekt Für den Zugriff auf nicht-statische Felder, Methoden oder Eigenschaften ist eine Referenz erforderlich ...“ Dies tritt auf, wenn auf nicht-statische Klassenmitglieder innerhalb statischer Methoden oder zugegriffen wird Ereignisse.
Um dieses Problem zu beheben, gibt es zwei Möglichkeiten:
Rückrufe und Mitgliedsvariablen als statisch deklarieren:
public static void Main (string[] args) { Timer _timer = null; static TimeSpan _millisecs; ... }
Erstellen Sie eine Instanz der Klasse:
MainClass instance = new MainClass(); btn.Clicked += instance.StartClick; btn_stop.Clicked += instance.StopClick;
Die Die Wahl zwischen diesen Optionen hängt von den Anforderungen der Anwendung ab. Wenn eine globale Statusverwaltung bevorzugt wird, können statische Mitglieder verwendet werden. Alternativ bietet das Erstellen einer Instanz eine bessere Testbarkeit und Kapselung.
Das Verständnis der Ursache der Fehlermeldung hilft, fundierte Entscheidungen zu treffen. Der Fehler tritt auf, weil für nicht statische Mitglieder der Zugriff auf eine Objektinstanz erforderlich ist, für statische Mitglieder hingegen nicht.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Ein Objektverweis ist erforderlich' beim Zugriff auf nicht-statische Mitglieder in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!