Praktische Verwendung von partiellen Schlüsselwörtern in C #

8

Ich weiß, dass Visual Studio den WinForms-UI-Code von den UI-Ereignissen usw. trennen kann. Aber gibt es irgendwelche praktischen Anwendungen dafür?

    
Joan Venge 04.03.2009, 22:49
quelle

9 Antworten

16

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.

    
Erik Forbes 04.03.2009, 22:51
quelle
2

Die beste Verwendung für das partielle Schlüsselwort, das ich mir vorstellen kann, sind verschachtelte Klassen. Ohne das partielle Schlüsselwort müssen alle verschachtelten Klassen in die gleiche Codedatei wie die enthaltene Klasse gehen.

    
snarf 04.03.2009 22:59
quelle
2

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.

    
Jon Erickson 04.03.2009 23:22
quelle
1

Ich verwende es für die Partitionierung von Hilfsklassen, wo einige Methoden viel Code benötigen. Dies ist eine recht einfache Möglichkeit, die Lesbarkeit beizubehalten, da jede Datei nur einen Teil der Funktionalität der Klasse behandelt.

    
Joey 04.03.2009 22:52
quelle
1

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.

    
Jonathan Allen 04.03.2009 22:55
quelle
0

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.

    
Jaime Febres 04.03.2009 22:54
quelle
0

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.

    
Sruly 04.03.2009 23:06
quelle
0

WPF verwendet teilweise umfangreiche Klassen. Das XAML generiert eine partielle Klasse, die Sie hinzufügen können.

    
cletus 04.03.2009 23:24
quelle
0

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.

    
kevin 05.03.2009 05:19
quelle

Tags und Links