2009-12-02 8 views

Antwort

17

Wenn Sie einen Teil dieser Klassen automatisch generieren und den Rest des Inhalts der Klassen manuell schreiben müssen.

Dies ist, damit Sie den maschinengenerierten Inhalt in einer Datei und handcodierten Code in einer anderen Datei ablegen können. Der Vorteil dabei ist, dass Ihr handcodierter Teil nicht gelöscht wird, wenn Sie den Quellcode neu generieren müssen.

Dies ist, wie MS-Klasse Inhalt für seine GUI-Designer (man denke an jene *.designer.cs-Datei) erzeugt, und ermöglicht es Ihnen, das Fleisch Ihrer Logik in anderen verwandten Datei zu setzen (*.cs)

5

Wenn Sie automatisch generiert Code, den Sie erweitern möchten, eine partielle Klasse ist eine gute Möglichkeit, das zu tun.

Zum Beispiel Erweiterung von LINQ zu SQL-Klassen, die generiert werden.

3

Angenommen, Sie haben Event-Handler und anderen GUI-Code an einem Ort und möchten anderen nicht GUI-bezogenen Code an einem Ort behalten. Das MVC-Muster, das in C# nicht einfach ist.

+2

Warum nicht GUI-Code in einer * Klasse * und Nicht-GUI-Code in einer anderen * Klasse *? –

+1

Sie leben in einer idealen Welt, die meisten C# -Codes haben eine Business-Logik, die in den Event-Handlern selbst geschrieben ist. Mindestens partielle Klassen und das Extrahieren bieten eine bessere Codeverwaltung, auch diese Art des Refactorings kann leicht in VS durchgeführt werden –

6

Wie die anderen bereits erwähnten, ist ein automatisch generierter Code ein guter Grund. Manchmal benutze ich auch partielle Klassen, wenn ich eine verschachtelte Klasse in eine eigene Datei schreiben möchte.

public partial class MyClass 
{ 
    private class NestedClass 
    { 
     ... 
    } 
} 

Plus gibt es diesen kleinen Trick Nest eine Datei in der Lösung Explorer (wie winform und Nest der Form1.designer.cs Datei zu tun).

<Compile Include="Foo.1.cs"> 
    <DependentUpon>Foo.cs</DependentUpon> 
</Compile> 

Nesting file in Visual Studio

Verwandte Themen