Heim >Backend-Entwicklung >C++ >Wie wirken sich Zugangsmodifikatoren (öffentlich, privat, geschützt) und der statische Modifikator in C#auf die Zugänglichkeit der Mitglieder aus?

Wie wirken sich Zugangsmodifikatoren (öffentlich, privat, geschützt) und der statische Modifikator in C#auf die Zugänglichkeit der Mitglieder aus?

DDD
DDDOriginal
2025-01-30 02:23:07379Durchsuche

How Do Access Modifiers (public, private, protected) and the Static Modifier Affect Member Accessibility in C#?

Zugriff und statische Modifikatoren in C#

verstehen

c# verwendet Zugriffsmodifikatoren (public, private, protected), um die Zugänglichkeit in Klassen und Strukturen zu steuern. Diese Modifikatoren definieren den Umfang, aus dem ein Klassenmitglied (Feld, Eigenschaft, Methode) zugegriffen werden kann. Der static -Modifikator fügt eine weitere Kontrollebene hinzu, die Mitglieder definiert, die zur Klasse selbst gehören, nicht einzelne Instanzen.

Zugriffsmodifikatoren:

  • public: Mitglieder, die als public deklariert sind, sind von überall zugänglich - innerhalb derselben Baugruppe oder einer anderen Vermittlung, die darauf verweist. Dies bietet die breiteste Zugänglichkeit.

  • private: Mitglieder, die als private deklariert sind, sind nur innerhalb der Klasse zugänglich, in der sie definiert sind. Dies erzwingt eine starke Einkapselung und Daten, die sich verstecken.

  • protected: Mitglieder, die als protected deklariert sind, sind innerhalb der Klasse zugänglich, in der sie definiert sind, und auch innerhalb abgeleiteter Klassen (Klassen, die aus der ursprünglichen Klasse erben). Dies ermöglicht eine kontrollierte Vererbung und Erweiterung der Funktionalität.

  • kein Modifikator (Standard): Wenn kein Zugriffsmodifikator angegeben ist, ist die Standardzugriffsstufe im Allgemeinen internal. Dies bedeutet, dass das Mitglied nur aus derselben Versammlung (Projekt) zugänglich ist, in der es definiert ist.

statischer Modifikator:

Der Modifikator static zeigt an, dass ein Mitglied zur Klasse selbst gehört, nicht zu einer bestimmten Instanz der Klasse. Statische Mitglieder werden in allen Fällen in allen Fällen geteilt. Auf statische Mitglieder werden mit dem Klassennamen zugegriffen, nicht mit einer Objektinstanz. Statische Klassen können nicht instanziiert werden.

Illustratives Beispiel:

<code class="language-csharp">public class ExampleClass
{
    private int privateVar;
    protected int protectedVar;
    public int publicVar;
    static int staticVar;

    public void PublicMethod() { }
    private void PrivateMethod() { }
    protected void ProtectedMethod() { }
    static void StaticMethod() { }

    public static void Main(string[] args)
    {
        ExampleClass instance = new ExampleClass();
        instance.publicVar = 10;
        instance.PublicMethod();
        // instance.privateVar = 20; // Error: private
        // instance.PrivateMethod(); // Error: private

        ExampleClass.staticVar = 5;
        ExampleClass.StaticMethod();
    }
}</code>

In diesem Beispiel sind publicVar und PublicMethod frei zugänglich. privateVar und PrivateMethod sind nur innerhalb von ExampleClass zugänglich. protectedVar und ProtectedMethod sind innerhalb von ExampleClass zugänglich und alle Klassen, die daraus erben. staticVar und StaticMethod werden direkt über den Klassennamen zugegriffen.

Praktische Anwendungen:

Zugriffsmodifikatoren sind für objektorientierte Designprinzipien wie Kapselung und Abstraktion von grundlegender Bedeutung. Sie helfen zu kontrollieren, wie unterschiedliche Teile Ihrer Anwendung interagieren, die Wartbarkeit der Code fördern und unbeabsichtigte Nebenwirkungen reduzieren. Statische Mitglieder sind nützlich für Versorgungsfunktionen oder Konstanten, die keine Objektinstanz erfordern.

Das obige ist der detaillierte Inhalt vonWie wirken sich Zugangsmodifikatoren (öffentlich, privat, geschützt) und der statische Modifikator in C#auf die Zugänglichkeit der Mitglieder aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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