Heim >Backend-Entwicklung >C#.Net-Tutorial >Die Rolle des Schlüsselworts „partial' in C# (Auszug)

Die Rolle des Schlüsselworts „partial' in C# (Auszug)

黄舟
黄舟Original
2016-12-14 14:57:351137Durchsuche

1. Was ist ein lokaler Typ?

C# 2.0 Das Konzept der lokalen Typen wird eingeführt. Lokale Typen ermöglichen es uns, eine Klasse, Struktur oder Schnittstelle in mehrere Teile zu unterteilen und diese in mehreren verschiedenen CS-Dateien zu implementieren.

Lokale Typen eignen sich für folgende Situationen:

(1) Der Typ ist extrem groß und sollte nicht in einer Datei implementiert werden.
(2) Ein Teil des Codes in einem Typ ist Code, der von automatisierten Tools generiert wurde und nicht mit von uns selbst geschriebenem Code vermischt werden sollte.
(3) Um einen Kurs zu schreiben, müssen mehrere Personen zusammenarbeiten.

Lokale Typen sind ein reiner Kompilierungsprozess der Sprachschicht, der keinen Einfluss auf den Ausführungsmechanismus hat. Tatsächlich führt der C#-Compiler während der Kompilierung weiterhin die lokalen Typen jedes Teils zu einer vollständigen Klasse zusammen.

öffentliches Teilkursprogramm
{
static void Main(string[] args)
{
}
}

partiell Klassenprogramm
{
public void Test()
{
}
}


2. Einschränkungen für lokale Typen

(1) Lokale Typen gelten nur für Klassen, Schnittstellen und Strukturen. Delegierte und Aufzählungen werden nicht unterstützt.
(2) Jeder Teil desselben Typs muss den Modifikator partiellen haben.
(3) Bei der Verwendung von Teiltypen müssen die Teile eines Typs im selben Namensraum liegen.
(4) Alle Teile eines Typs müssen gleichzeitig kompiliert werden.

3. Zu beachtende Punkte zu Teiltypen

(1) Das Schlüsselwort „Partial“ ist ein kontextbezogenes Schlüsselwort, das nur mit Klasse, Struktur und Schnittstelle verwendet werden kann Schlüsselwörter haben nur dann eine Bedeutung, wenn sie zusammengesetzt werden. Daher hat die Einführung von „Partial“ keine Auswirkungen auf Variablen mit dem Namen „Partial“ im vorhandenen Code.
(2) Die verschiedenen Teile lokaler Typen werden normalerweise in mehreren verschiedenen CS-Dateien abgelegt, aber der C#-Compiler ermöglicht es uns, sie in derselben Datei abzulegen.

4. Angewandte Eigenschaften lokaler Typen

Eigenschaften auf lokale Typen haben einen „kumulativen“ Effekt.

[Attribute1, Attribute2("Hallo")]
Teilklasse Klasse1{}

[Attribute3, Attribute2("Exit")]
Teilklasse Klasse1{}


entspricht

[Attribute1, Attribute2("Hello"), Attribute3, Attribut2("Exit")]
Klasse Klasse1 {}


Hinweis: Das Attribut Attribut2 darf mehrfach in einer Klasse verwendet werden.

5. Modifikatoren für lokale Typen

(1) Zugriffsmodifikatoren für verschiedene Teile eines Typs müssen die Konsistenz wahren.
(2) Wenn eine Teilklasse den abstrakten Modifikator verwendet, wird die gesamte Klasse als abstrakte Klasse betrachtet.
(3) Wenn eine Teilklasse den versiegelten Modifikator verwendet, wird die gesamte Klasse als versiegelte Klasse betrachtet.
(4) Teile einer Klasse können keine widersprüchlichen Modifikatoren verwenden. Sie können beispielsweise nicht „abstract“ für einen Teil und „sealed“ für einen anderen Teil verwenden.
(5) Wenn eine Teilklasse den statischen Modifikator verwendet, wird die gesamte Klasse als statische Klasse betrachtet.


6. Basisklassen und Schnittstellen lokaler Typen

(1) Die für jeden Teil eines Typs angegebene Basisklasse muss konsistent sein. Ein Abschnitt darf keine Basisklasse angeben, aber wenn sie angegeben wird, muss sie dieselbe sein.
(2) Schnittstellen für lokale Typen haben einen „kumulativen“ Effekt.

Teilklasse Klasse2: Iinterface1, Iinterface2 {}
Teilklasse Klasse2: Iinterface3 {}
Teilklasse Klasse2: Iinterface2 {}


entspricht

Klasse Klasse2: Iinterface1, Iinterface2, Iinterface3 {}

Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!

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
Vorheriger Artikel:C++-ZeichenfolgeNächster Artikel:C++-Zeichenfolge