C#-Fehler: „Für den Zugriff auf ein nicht statisches Feld, eine Methode oder eine Eigenschaft ist eine Objektreferenz erforderlich“
In diesem C#-Code tritt ein Fehler in der Zeile Main()
innerhalb der Methode Population[i].bits = GetRandomBits();
auf. Die Fehlermeldung lautet „Für den Zugriff auf nicht statische Felder, Methoden oder Eigenschaften „VM_Placement.Program.GetRandomBits“ ist eine Objektreferenz erforderlich ()'". Dieser Fehler weist darauf hin, dass eine nicht statische Methode Main()
von einer statischen Methode GetRandomBits()
aufgerufen wird.
In C# sind statische Methoden einer Klasse und nicht einer bestimmten Instanz der Klasse zugeordnet, während nicht statische Methoden Instanzen der Klasse zugeordnet sind. Das bedeutet, dass nicht-statische Methoden eine Instanz der Klasse benötigen, um aufgerufen zu werden.
Für diesen speziellen Fall gibt es zwei Lösungen, um diesen Fehler zu beheben:
<code class="language-csharp">Program p = new Program(); p.GetRandomBits();</code>
Durch das Erstellen einer Instanz der Program-Klasse kann GetRandomBits()
für diese Instanz aufgerufen werden, da es sich nun um eine Instanzmethode handelt.
<code class="language-csharp">public static string GetRandomBits() { // ... }</code>
Machen Sie GetRandomBits()
statisch, sodass es direkt von einer statischen Main()
-Methode aufgerufen werden kann, ohne dass eine Instanz der Klasse erforderlich ist.
Das obige ist der detaillierte Inhalt vonWarum gibt mein C#-Code den Fehler „Für das nicht statische Feld, die nicht statische Methode oder die nicht statische Eigenschaft ist eine Objektreferenz erforderlich' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!