Teilweise Klasse in ASP.NET

高洛峰
Freigeben: 2016-12-13 11:50:19
Original
1508 Leute haben es durchsucht

Wenn Sie eine öffentliche Funktionsbibliothek für Ihr Projekt entwickeln, ist es umso besser, je umfangreicher der Inhalt ist. In diesem Fall ist dies jedoch möglich Verwenden Sie Partial Class, laden Sie Ihr neu entwickeltes Partial Class-Programm hin und wieder auf den Server oder ein bestimmtes Verzeichnis hoch. Es ist nicht erforderlich, den neuen Code zu kopieren und in den ursprünglichen Programmcode einzufügen, wodurch unnötige Probleme vermieden werden.

Teiltyp ist 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.


1. Unter welchen Umständen sollten Teilklassen verwendet werden?

(1) Der Typ ist sehr 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.


2. Modifikatoren für Teiltypen

(1) Zugriffsmodifikatoren für verschiedene Teile eines Typs müssen konsistent bleiben.
(2) Wenn ein Teil eines Typs den abstrakten Modifikator verwendet, wird die gesamte Klasse als abstrakte Klasse betrachtet.
(3) Wenn ein Teil eines Typs den versiegelten Modifikator verwendet, wird die gesamte Klasse als versiegelte Klasse betrachtet.
(4) Jeder Teil einer Klasse kann nicht widersprüchliche Modifikatoren verwenden. Sie können beispielsweise nicht „abstrakt“ für einen Teil und „versiegelt“ für einen anderen Teil verwenden.


3. Basisklassen und Schnittstellen von Teiltypen

(1) Die für jeden Teil eines Typs angegebenen Basisklassen müssen konsistent sein. Für einen bestimmten Teil muss keine Basisklasse angegeben werden. Wenn diese jedoch angegeben wird, muss sie dieselbe sein.
(2) Die Schnittstelle vom Typ Partial hat einen „kumulativen“ Effekt.
Teilklasse Klasse2: Iinterface1, Iinterface2 {}
Teilklasse Klasse2: Iinterface3 {}
Teilklasse Klasse2: Iinterface2 {}
Äquivalent zu
Klasse Klasse2: Iinterface1, Iinterface2, Iinterface3 {}


4. Anwendungsmerkmale lokaler Typen

Die Eigenschaften lokaler Typen wirken „kumuliert“.


[Attribute1, Attribute2("Hello")]
partielle Klasse Class1{}

[Attribute3, Attribute2("Exit")]
partielle Klasse Class1{ }

ist äquivalent zu
[Attribute1, Attribute2("Hello"), Attribute3, Attribute2("Exit")]
class Class1 {}

Hinweis: Attribute2-Attribut ist erlaubt in Mehrfach in der Klasse verwendet.


5. Einschränkungen für Teiltypen

1. Alle Teiltypdefinitionen, die Teile desselben Typs sein sollen Verwenden Sie „partial“ für Änderungen. Wie unten gezeigt:

öffentliche Teilklasse A { }

öffentliche Klasse A { } // Fehler, muss auch als Teil markiert werden

2 Der Teilmodifikator kann nur angezeigt werden Unmittelbar vor dem Schlüsselwort class, struct oder interface (partiell kann nicht für Aufzählungen oder andere Typen verwendet werden);

3 Alle partiellen Typdefinitionen, die Teile desselben Typs sein möchten, müssen in derselben Assembly sein dasselbe Modul (.exe- oder .dll-Datei). Teildefinitionen können nicht mehrere Module umfassen;

4. Klassennamen und generische Typparameter müssen in allen Teiltypdefinitionen übereinstimmen. Generische Typen können partiell sein. Jede Teildeklaration muss dieselben Parameternamen in derselben Reihenfolge verwenden.

5. Lokale Typen gelten nur für Klassen, Schnittstellen und Strukturen und unterstützen keine Delegation und Aufzählung.

6. Alle Teile eines Typs müssen gleichzeitig kompiliert werden.


6. Bei der Verwendung von Partial müssen Sie auf die folgenden Situationen achten:

1 dass es im Namensraum definiert werden kann Andere Teile einer Klasse, Struktur oder Schnittstelle

2 Alle Teile müssen das Teilschlüsselwort verwenden

3 Jeder Teil muss die gleiche Zugänglichkeit haben, wie z öffentlich, privat usw.

4. Wenn ein Teil als abstrakt deklariert wird, gilt der gesamte Typ als abstrakt

5. Wenn ein Teil als versiegelt deklariert wird, gilt der gesamte Typ als versiegelt

6. Wenn ein Teil angibt, die Basisklasse zu erben, erbt der gesamte Typ die Klasse

7. Jeder Teil kann verschiedene Basisschnittstellen angeben und der endgültige Typ implementiert alle Teilschnittstellen Deklarationen. Alle aufgeführten Schnittstellen

8. Alle in einer Teiledefinition deklarierten Klassen, Strukturen oder Schnittstellenmitglieder sind für alle anderen Teile verfügbar

9. Verschachtelte Typen können partiell sein, auch wenn der Typ, in dem sie verschachtelt sind, selbst nicht partiell ist.


7. Teilinstanz

Definieren Sie die Beispielklasse als Teilklasse und definieren Sie die drei Methoden m1, m2 und m3 dieser Klasse in Beispiel1 . cs,Beispiel2. cs,Beispiel3. cs drei Klassendateien und dann in PartialClass.aspx. Instanziieren Sie die Beispielklasse in cs und rufen Sie die Methoden in der Klasse auf.

//Example1.cs
public partial class Example
{
    public string m1()
    {
        return "Method 1 ";
    }
}

 
//Example2.cs
public partial class Example
{
    public string m2()
    {
        return "Method 2 ";
    }
}

 
//Example3.cs
public partial class Example
{
    public string m3()
    {
        return "Method 3 ";
    }
}
Nach dem Login kopieren


Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage