Heim > Backend-Entwicklung > C++ > Warum kann ich über Instanzreferenzen nicht auf statische Mitglieder in C# zugreifen?

Warum kann ich über Instanzreferenzen nicht auf statische Mitglieder in C# zugreifen?

Mary-Kate Olsen
Freigeben: 2025-01-27 15:11:11
Original
967 Leute haben es durchsucht

Why Can't I Access Static Members in C# Using Instance References?

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" 'kann mit einer Instanzreferenz nicht zugegriffen werden. "

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Dies macht Property1 ein Instanzelement, das Zugriff mit oItem.Property1.

ermöglicht

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!

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