Zugriff auf statische Mitglieder in C#: Vermeiden Sie Instanzreferenzfehler
In C#erfordert der Zugriff auf statische Mitglieder das Verständnis ihres einzigartigen Verhaltens. Im Gegensatz zu Mitgliedern, die zu bestimmten Objekten gehören, gehören statische Mitglieder zur Klasse selbst. Der Versuch, mit einer Instanzreferenz auf ein statisches Mitglied zugreifen zu können, ergibt sich in dem Fehler: "Mitglied"
Richtige Syntax für den statischen Mitglied Zugriff:
Der richtige Weg, um auf ein statisches Mitglied zuzugreifen, ist über den Klassennamen, nicht eine Instanz der Klasse.
veranschaulichen wir mit einem Beispiel:
<code class="language-csharp">// Static class members namespace MyDataLayer.Section1 { public class MyClass { public class MyItem { public static string Property1 { get; set; } } } }</code>
falscher Zugriff (Verwendung Instanzreferenz):
<code class="language-csharp">using MyDataLayer.Section1; public class MyClass { protected void MyMethod() { MyClass.MyItem oItem = new MyClass.MyItem(); someLiteral.Text = oItem.Property1; // Error! } }</code>
Richtiger Zugriff (unter Verwendung des Klassennamens):
<code class="language-csharp">using MyDataLayer.Section1; public class MyClass { protected void MyMethod() { someLiteral.Text = MyDataLayer.Section1.MyClass.MyItem.Property1; // Correct! } }</code>
Alternative: Entfernen des static
-Modifikators
Wenn Sie über eine Instanz auf das Mitglied zugreifen müssen, entfernen Sie das Schlüsselwort static
aus der Deklaration des Mitglieds:
<code class="language-csharp">public class MyItem { public string Property1 { get; set; } // No longer static }</code>
Dies macht Property1
ein Instanzelement, das Zugriff mit oItem.Property1
.
Wenn Sie diesen Richtlinien folgen, können Sie bei der Arbeit mit statischen Mitgliedern in C# häufig auftretende Fehler vermeiden und Ihre Code korrekt sicherstellen.
Das obige ist der detaillierte Inhalt vonWarum kann ich über Instanzreferenzen nicht auf statische Mitglieder in C# zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!