Ich weiß, dass Visual Studio den WinForms-UI-Code von den UI-Ereignissen usw. trennen kann. Aber gibt es irgendwelche praktischen Anwendungen dafür?
Das Schlüsselwort partial wird normalerweise in Codegenerierungsprogrammen verwendet, damit Entwickler dem generierten Code zusätzliche Funktionalität hinzufügen können, ohne befürchten zu müssen, dass dieser Code gelöscht wird, wenn der Code erneut generiert wird.
Mit C # 3 kann das partielle Schlüsselwort auf Methoden angewendet werden, die es Benutzern von generiertem Code erlauben, vom Generator zurückgelassene Leerzeichen zu füllen. Der Linq To Sql-Designer bietet zum Beispiel partielle Methoden, mit denen Sie Logik zu den Klassen hinzufügen können, die das Framework aufrufen wird, wenn es implementiert wird. Der Vorteil hierbei ist, dass der C # -Compiler nicht implementierte Partialmethoden vollständig entfernt, so dass überhaupt keine Performance erreicht wird , um sie nicht zu implementieren.
Teilklassen können auch verwendet werden, um sehr große Klassen in separaten Codedateien zu organisieren, obwohl diese Art der Verwendung normalerweise ein Zeichen dafür ist, dass Ihre Klassen zu groß sind und zu viele Verantwortlichkeiten übernehmen.
Eine Verwendung, die ich gefunden habe, ist für Code, den Sie möglicherweise nicht in Produktionscode wie Ablaufverfolgung oder dev Protokollierungscode vorhanden sein möchten. Sie können dies in der partiellen Klasse platzieren und dann, wenn Sie einen Produktions-Build machen, bauen Sie einfach ohne die enthaltenen Partials und der Compiler wird automatisch alle Aufrufe an jene Partials entfernen, die ausgeschlossen wurden.
In VB können Sie "normalen" Code von Code, der späte Bindung benötigt, über "Option Strict Off" trennen.
In C # verwende ich es nur für ungewöhnlich große Klassen.
Der LINQ to SQL-Designer verwendet es umfassend, um benutzerdefiniertes Verhalten (partielle Methoden) außerhalb der Mapping-Klasse aufzuteilen.
Kurz gesagt, sein Hauptzweck ist für Code-Generatoren.
Hoffe, das hilft.
Ich benutze die ganze Zeit partielle Klassen und Methoden mit Linq2Sql. Ansonsten habe ich es nie für andere als UI / Code-Behind-Klassen verwendet.
Eines der großen Dinge, die ich an partiellen Klassen in linq2sql mag, ist, dass Sie die partielle Klasse eine Schnittstelle erben lassen und die Schnittstelle der generierten Klasse zuordnen können. Das ist großartig, wenn Sie mehr als einen Datenprovider haben und immer noch dieselben Schnittstellen für alle Datenzugriffsklassen verwenden möchten.
Ich verwende partielle Klassen, um die Verschmelzungsschwierigkeiten mit der Versionskontrolle zu reduzieren, wenn ich weiß, dass mehrere Entwickler an einer Klasse arbeiten. Zum Beispiel haben wir oft unsere DAL-Klasse in mehrere Teilklassendateien aufgeteilt. Wenn Sie sie nicht in verschiedenen Dateien ablegen, können Sie leicht Zusammenführungskonflikte erhalten, die bei der Überprüfung in der Version ctl behoben werden müssen.
Wenn die Entwicklung weniger chaotisch wird, wenn die Klasse fast abgeschlossen ist, werden die Teildateien entfernt. Wir verwenden es einfach, um Probleme mit VC / Mulit-Entwicklern zu erleichtern.