2009-12-02 10 views

risposta

17

Quando è necessario generare automaticamente una parte di tali classi e scrivere manualmente il resto del contenuto delle classi.

In questo modo è possibile inserire il contenuto generato dalla macchina in un file e codice codificato manualmente in un altro file. Il vantaggio di farlo è che quando devi rigenerare il codice sorgente, la tua parte codificata a mano non verrà cancellata.

Questo è il modo MS genera contenuto di classe per i suoi progettisti GUI (si pensi a quelli *.designer.cs file), e consente di mettere la carne della vostra logica in altri file correlato (*.cs)

5

Se è stato generato automaticamente codice che vuoi estendere, una classe parziale è un ottimo modo per farlo.

Ad esempio, estensione delle classi LINQ a SQL generate.

3

Diciamo che avere i gestori di eventi e altro codice GUI in un unico luogo, e si desidera mantenere altro codice non GUI correlati in un unico luogo. Il pattern MVC che non è facile in C#.

+2

Perché non avere il codice della GUI in una classe * * e il codice non-GUI in un'altra classe * *? –

+1

Voi vivete in un mondo ideale, la maggior parte del codice C# hanno logica di business scritto entro i gestori di evento stesso. Almeno avente classi parziali ed estrazione fornire qualche sorta di una migliore gestione del codice, anche questo tipo di refactoring può essere fatto facilmente in VS –

6

Come gli altri hanno detto, il codice generato automaticamente è una buona ragione. Uso anche la classe parziale a volte quando voglio inserire una classe nidificata nel proprio file.

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

più v'è questo piccolo trucco per nidificare un file in Esplora soluzioni (da fare come winform e nidificano il file Form1.designer.cs).

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

Nesting file in Visual Studio

Problemi correlati