Heim  >  Artikel  >  Backend-Entwicklung  >  Einblicke in C#-Klassenmodifikatoren

Einblicke in C#-Klassenmodifikatoren

巴扎黑
巴扎黑Original
2016-12-20 09:48:011136Durchsuche

Klassenmodifikatoren: öffentlich, intern, teilweise, abstrakt, versiegelt, statisch

Mitgliedsmodifikatoren: öffentlich, geschützt, privat, intern, versiegelt, abstrakt, virtuell, überschreiben, schreibgeschützt, const


Öffentlich: Am offensten, auf alle Objekte in dieser Assembly und anderen Assemblys kann zugegriffen werden


Geschützt: Offener, seine eigenen Mitglieder und Unterklassenmitglieder sind zugänglich


Privat: Nur seine eigenen Mitglieder haben Zugriff auf


Intern: Mitglieder in dieser Baugruppe können auf


Teilweise zugreifen: Teilweise Klassen, können eine Klasse in mehrere Teile aufteilen und schreiben Sie werden während der endgültigen Kompilierung in verschiedenen Dateien zusammengeführt, und die Teile können nicht auf verschiedene Baugruppen verteilt werden.


Abstrakt: Wenn Sie eine Klasse ändern, bedeutet dies, dass die Klasse eine abstrakte Klasse ist. Instanzen dieser Klasse können nicht erstellt werden. Beim Ändern einer Methode bedeutet dies, dass die Methode von einer Unterklasse implementiert werden muss. Wenn die Unterklasse die Methode nicht implementiert, ist die Unterklasse auch eine abstrakte Klasse und die Klasse, die die abstrakte Methode enthält, muss eine abstrakte Klasse sein

Versiegelt: Beim Ändern einer Klasse bedeutet dies, dass die Klasse nicht vererbt werden kann, und beim Ändern einer Methode bedeutet dies, dass die Methode nicht überschrieben werden kann.

Statisch: Beim Ändern einer Klasse bedeutet dies, dass die Klasse eine statische Klasse ist und keine Objekte dieser Klasse instanziieren kann. Da diese Klasse nicht instanziiert werden kann, kann diese Klasse keine Objektmitglieder enthalten, d. h. Die Klasse kann nicht instanziiert werden. Beim Ändern eines Klassenmitglieds ist das Mitglied ein Klassenmitglied und kann nur über [Name des Klassenmitglieds] aufgerufen werden

Wenn static den Konstruktor ändert, darf der Konstruktor keine Parameter oder Modifikatoren enthalten und der Konstruktor kann die Objektmitglieder nicht

initialisieren. Aber statische Mitglieder können initialisiert oder aufgerufen werden. Es gibt keine Garantie, wann es ausgeführt wird, aber es kann garantiert werden, dass es ausgeführt wird, bevor die Klasse

zum ersten Mal verwendet wird. Im statischen Konstruktor initialisierte statische Mitglieder sind die endgültigen Initialisierungsergebnisse. Zum Beispiel:

view plain

public static int test = 0;

static Person()

{

test = 3 ;

}

static void Main(string[] args)

{

Konsole. WriteLine (Person.test);//Das laufende Ergebnis ist 3

}

Hinweis: Wenn eine Klasse oder Methode nicht durch einen Modifikator geändert wird, ist die Standardeinstellung intern:

C# verwendet mehrere Modifikatoren, um verschiedene Eigenschaften der Klasse auszudrücken. C#-Klassen verfügen entsprechend ihrer Schutzstufe über fünf verschiedene Einschränkungsmodifikatoren:

öffentlich kann beliebig zugegriffen werden;

geschützt kann nur von dieser Klasse und ihren geerbten Unterklassen zugegriffen werden;


intern kann nur zugegriffen werden auf die alle Klassen in dieser Assembly zugreifen können (Assembly ist die logische Einheit und die physische Einheit, nachdem Klassen in der C#-Sprache kombiniert wurden).

Die kompilierte Dateierweiterung ist oft „.DLL“ oder „.EXE“. ".

protected internal ist der einzige Kombinationseinschränkungsmodifikator. Auf ihn können nur alle Klassen in dieser Kombination und die geerbten Unterklassen dieser Klassen zugreifen.

Auf „Privat“ kann nur diese Klasse zugreifen.

Wenn es sich nicht um eine verschachtelte Klasse handelt, weist die Klasse im Namespace oder in der Kompilierungseinheit nur zwei Modifikationen auf: öffentlich und intern.

Der neue Modifikator kann nur für verschachtelte Klassen verwendet werden, was darauf hinweist, dass der von der übergeordneten Klasse geerbte Typ mit demselben Namen ausgeblendet ist.


abstract wird zum Ändern einer abstrakten Klasse verwendet. Dies bedeutet, dass die Klasse nur zur Vererbung als übergeordnete Klasse verwendet und nicht als Objekt instanziiert werden kann. Eine abstrakte Klasse kann abstrakte

-Mitglieder enthalten, dies ist jedoch nicht erforderlich. abstract kann nicht zusammen mit new verwendet werden.

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