Heim >Backend-Entwicklung >C++ >Warum erhalte ich in C# die Fehlermeldung „Für das nicht-statische Feld, die nicht-statische Methode oder die nicht-statische Eigenschaft ist eine Objektreferenz erforderlich'?
C#-Fehler: „Für den Zugriff auf ein nicht statisches Feld, eine Methode oder eine Eigenschaft ist eine Objektreferenz erforderlich“
Erklärung:
Dieser Fehler tritt auf, wenn versucht wird, aus einem statischen Kontext auf eine nicht statische Variable, Methode oder Eigenschaft zuzugreifen. In diesem Beispiel versucht die als statisch deklarierte Methode „Main“, die nicht statische Methode „GetRandomBits()“ aufzurufen.
Spezifische Fragen:
Im bereitgestellten Code ist die Methode „GetRandomBits()“ als nicht statische Methode in der Klasse „Program“ definiert. Die Methode „Main“ ist jedoch in derselben Klasse als statisch deklariert. Diese Nichtübereinstimmung hat den Fehler verursacht.
Lösung:
Es gibt zwei mögliche Lösungen für dieses Problem:
Erstellen Sie eine Instanz der Program-Klasse:
Erstellen Sie in der Methode „Main“ eine Instanz der Klasse „Program“ und rufen Sie dann die Methode „GetRandomBits()“ für diese Instanz auf.
<code class="language-csharp">Program p = new Program(); string bits = p.GetRandomBits();</code>
Setzen Sie „GetRandomBits()“ auf statisch:
Alternativ können Sie die Deklaration der Methode „GetRandomBits()“ ändern, um sie zu einer statischen Methode zu machen. Auf diese Weise kann es direkt aus der statischen Methode „Main“ aufgerufen werden.
<code class="language-csharp">public static string GetRandomBits() { // ... 方法实现 }</code>
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in C# die Fehlermeldung „Für das nicht-statische Feld, die nicht-statische Methode oder die nicht-statische Eigenschaft ist eine Objektreferenz erforderlich'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!