Heim > Backend-Entwicklung > C++ > Was verursacht den Fehler „Objektreferenz erforderlich' und wie kann er behoben werden?

Was verursacht den Fehler „Objektreferenz erforderlich' und wie kann er behoben werden?

Barbara Streisand
Freigeben: 2024-12-27 02:07:10
Original
652 Leute haben es durchsucht

What Causes the

Den Fehler „Objektreferenz erforderlich“ verstehen

Bei der objektorientierten Programmierung erfordern nicht statische Elemente wie Instanzvariablen und Methoden eine Objektinstanz zugegriffen. Wenn Sie versuchen, auf diese nicht-statischen Mitglieder zuzugreifen, ohne zuvor ein Objekt zu erstellen, wird die Fehlermeldung „Für den Zugriff auf ein nicht-statisches Mitglied ist eine Objektreferenz erforderlich“ angezeigt.

Beheben des Fehlers mit statischen Mitgliedern

Eine Möglichkeit, diesen Fehler zu beheben, besteht darin, die betroffenen Mitglieder statisch zu machen. Statische Mitglieder sind mit der Klasse selbst verknüpft, nicht mit einzelnen Objekten. Dies bedeutet, dass auf sie ohne eine Objektinstanz zugegriffen werden kann.

In dem von Ihnen bereitgestellten Codeausschnitt sind beispielsweise die Methoden „StartClick“ und „StopClick“ nicht statisch. Um den Fehler zu beheben, können Sie diese Methoden wie folgt ändern:

public static void StartClick(object obj, EventArgs args) {}
public static void StopClick(object obj, EventArgs args) {}
Nach dem Login kopieren

Dies würde jedoch einen globalen Status in Ihre Anwendung einführen, was im Allgemeinen nicht als bewährte Vorgehensweise gilt.

Erstellen eines Objekts Instanz

Eine andere Möglichkeit, den Fehler zu beheben, besteht darin, eine Instanz der Klasse zu erstellen. Dadurch können Sie über die Instanzreferenz auf nicht statische Mitglieder zugreifen.

Sie könnten beispielsweise den folgenden Code hinzufügen, bevor Sie auf die Methoden StartClick und StopClick zugreifen:

MainClass instance = new MainClass();
btn.Clicked += instance.StartClick;
btn_stop.Clicked += instance.StopClick;
Nach dem Login kopieren

Durch Erstellen einer Instanz Von MainClass haben Sie eine Objektreferenz, die für den Zugriff auf nicht statische Mitglieder verwendet werden kann.

Schlussfolgerung

Die Entscheidung, ob verwendet werden soll Die Verwendung statischer Member oder Objektinstanzen hängt von den spezifischen Anforderungen Ihrer Anwendung ab. Wenn die Vermeidung globaler Zustände von entscheidender Bedeutung ist, ist die Erstellung von Objektinstanzen der bevorzugte Ansatz. Dies sorgt für eine bessere Kapselung und Testbarkeit Ihres Codes.

Das obige ist der detaillierte Inhalt vonWas verursacht den Fehler „Objektreferenz erforderlich' und wie kann er behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage