Heim > Backend-Entwicklung > C++ > Warum 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?

Warum 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?

Barbara Streisand
Freigeben: 2025-01-22 05:36:09
Original
424 Leute haben es durchsucht

Why Does My C# Code Throw

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:

  • Erstellen Sie eine Instanz der Program-Klasse:
<code class="language-csharp">Program p = new Program();
p.GetRandomBits();</code>
Nach dem Login kopieren

Durch das Erstellen einer Instanz der Program-Klasse kann GetRandomBits() für diese Instanz aufgerufen werden, da es sich nun um eine Instanzmethode handelt.

  • Machen Sie die GetRandomBits()-Methode statisch:
<code class="language-csharp">public static string GetRandomBits()
{
    // ...
}</code>
Nach dem Login kopieren

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!

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