2009-12-02 3 views

答えて

17

これらのクラスの一部を自動生成し、残りのクラスの内容を手動で書き込む必要がある場合。

これは、マシンで生成されたコンテンツを1つのファイルに入れ、別のファイルにコードを手入力できるようにするためのものです。これを行う利点は、ソースコードを再生成する必要があるときに、手作業でコード化された部分が消去されないということです。

あなたが自動生成されている場合これは、MSは(それらの*.designer.csファイルを考える)そのGUIデザイナーのためのクラスのコンテンツを生成する方法であり、あなたが他の関連ファイル(*.cs)であなたのロジックの肉を配置することができます

5

コードを拡張したい場合は、部分クラスを使用するとよいでしょう。

たとえば、生成されるLINQからSQLへのクラスを拡張します。

3

イベントハンドラと他のGUIコードがある場所にあり、他の非GUI関連コードを1か所に保存したいとします。 C#で簡単ではないMVCパターン。

+2

*? –

+1

あなたは理想的な世界に住んでいますが、C#コードのほとんどは、イベントハンドラ自体の内部に記述されたビジネスロジックを持っています。少なくとも部分的なクラスを持ち、抽出することでより良いコード管理を提供することもできます。このタイプのリファクタリングもVSで簡単に行うことができます –

6

他の人が言ったように、自動生成コードが良い理由です。私はまた、自分自身のファイルに入れ子クラスを入れたいときに部分クラスを使うこともあります。

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

プラス巣にこの小さなトリックは、ソリューションエクスプローラでファイル(Winフォームと巣のようなForm1.designer.csファイルを実行するには)があります。別の*クラスで1 *クラス*および非GUIのコードでGUIコードを持っていないのはなぜ

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

Nesting file in Visual Studio

関連する問題