In C# tritt der Fehler „Objektverweis ist erforderlich, um auf ein nicht statisches Feld, eine nicht statische Methode oder eine Eigenschaft zuzugreifen“ normalerweise auf, wenn eine statische Methode versucht, auf ein nicht statisches Mitglied der Klasse zuzugreifen.
Der Fehler in diesem Artikel tritt in der folgenden Codezeile in der Main
-Methode auf:
<code class="language-c#">Population[i].bits = GetRandomBits();</code>
Das Problem liegt bei der Methode GetRandomBits
, die als nicht statische Methode in der Klasse Program
deklariert ist. Allerdings ist die Main
-Methode als statische Methode definiert, was bedeutet, dass sie nur auf statische Mitglieder der Klasse zugreifen kann.
Es gibt zwei Möglichkeiten, diesen Fehler zu beheben:
1. Erstellen Sie eine Instanz der Klasse:
Statische Methoden können nicht direkt auf nicht statische Mitglieder zugreifen. Um über eine statische Methode auf eine nicht statische Methode oder Eigenschaft zuzugreifen, erstellen Sie zunächst eine Instanz der Klasse und rufen dann die Methode auf oder greifen über diese Instanz auf die Eigenschaft zu. Zum Beispiel:
<code class="language-c#">// 创建 Program 类的实例 Program p = new Program(); // 通过实例调用 GetRandomBits 方法 Population[i].bits = p.GetRandomBits();</code>
2. Machen Sie die Methode statisch:
Alternativ können Sie es zu einer statischen Methode machen, indem Sie das Schlüsselwort Program
hinzufügen, wenn Sie die Methode GetRandomBits
in der Klasse static
deklarieren. Auf diese Weise können statische Main
-Methoden direkt auf die GetRandomBits
-Methode zugreifen, ohne eine Instanz zu erstellen. Zum Beispiel:
<code class="language-c#">public static string GetRandomBits() { // 方法实现 }</code>
Mit jeder der oben genannten Methoden können Sie den Fehler beseitigen und dafür sorgen, dass die Main
-Methode korrekt auf die GetRandomBits
-Methode zugreift.
Das obige ist der detaillierte Inhalt vonWarum wirft C# die Meldung „Für das nichtstatische Feld, die nicht-statische Methode oder die nichtstatische Eigenschaft ist eine Objektreferenz erforderlich' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!