(Fortsetzung)
19.4 Unvollständige Typen
Obwohl es eine gute Programmierpraxis ist, den gesamten Quellcode für einen Typ in einer einzigen Datei zu verwalten, kann es vorkommen, dass ein Typ sehr groß wird und dies der Fall ist wird zu einer unrealistischen Grenze. Darüber hinaus verwenden Programmierer häufig Quellcodegeneratoren, um die anfängliche Struktur einer Anwendung zu generieren und den resultierenden Code zu ändern. Wenn der Quellcode in Zukunft erneut veröffentlicht wird, werden leider vorhandene Änderungen überschrieben.
Unvollständige Typen (Teiltypen) ermöglichen die Aufteilung von Klassen, Strukturen und Schnittstellen in mehrere Teile und die Speicherung in verschiedenen Quelldateien, was für Entwicklung und Wartung praktischer ist. Darüber hinaus ermöglichen unvollständige Typen die Trennung zwischen maschinell generierten und vom Benutzer geschriebenen Teilen bestimmter Typen, sodass die Erweiterung des vom Tool erstellten Codes einfach ist.
Wenn Sie einen Typ in mehreren Teilen definieren, können Sie einen neuen Typmodifikator partiell verwenden. Nachfolgend finden Sie ein Beispiel für eine unvollständige Klasse, die in zwei Teilen implementiert ist. Die beiden Teile können sich beispielsweise in unterschiedlichen Quelldateien befinden, da der erste Teil maschinell über ein Datenbank-Mapping-Tool generiert wird und der zweite Teil manuell erstellt wird.
public partial class Customer { private int id; private string name; private string address; pivate List<Order> orders; public Customer() { … } } public partial class Customer { public void SubmitOrder(Order order) { orders.Add(order); } public bool HasOutstandingOrders() { return orders.Count>0; } }
Wenn die beiden vorherigen Teile zusammen kompiliert werden, ist der resultierende Code derselbe wie die als einzelne Einheit geschriebene Klasse.
public class Customer { private int id; private string name; private string address; pivate List<Order> orders; public Customer() { … } public void SubmitOrder(Order order) { orders.Add(order); } public bool HasOutstandingOrders() { return orders.Count>0; } }
Alle Teile eines unvollständigen Typs müssen zusammen kompiliert werden, damit die Teile zur Kompilierzeit zusammengeführt werden können. Insbesondere unvollständige Typen erlauben keine Erweiterungen auf bereits kompilierte Typen.
Das Obige ist der Inhalt von C# 2.0 Sepcification (3). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com).