Quando diventa una buona idea avere la classe separata in due file .cs e averla come classe parziale?In quali condizioni è opportuno avere una "classe parziale"?
Ci sono dei segnali che indicano che è ora di andare in classe parziale?
Grazie!
Quando diventa una buona idea avere la classe separata in due file .cs e averla come classe parziale?In quali condizioni è opportuno avere una "classe parziale"?
Ci sono dei segnali che indicano che è ora di andare in classe parziale?
Grazie!
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
)
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.
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#.
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>
Perché non avere il codice della GUI in una classe * * e il codice non-GUI in un'altra classe * *? –
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 –