6

クラスを 2 つの .cs に分割し、それを部分クラスとして使用することが適切になるのはいつですか?

部分クラスを使用する時期が来たことを示す兆候はありますか?

ありがとう!

4

4 に答える 4

17

これらのクラスの一部を自動生成し、クラスの残りのコンテンツを手動で作成する必要がある場合。

これは、機械で生成されたコンテンツを 1 つのファイルに配置し、手動でコーディングしたコードを別のファイルに配置できるようにするためです。そうすることの利点は、ソース コードを再生成する必要がある場合に、手作業でコーディングした部分が消去されないことです。

これは、MS がその GUI デザイナー (これらの*.designer.csファイルを考えてください) 用にクラス コンテンツを生成する方法であり、ロジックの肉を他の関連ファイル ( *.cs)に入れることができます。

于 2009-12-02T14:58:33.003 に答える
6

他の人が言ったように、自動生成されたコードは正当な理由です。また、ネストされたクラスを独自のファイルに入れたいときに、部分クラスを使用することもあります。

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

さらに、ソリューション エクスプローラーでファイルをネストするためのちょっとしたトリックがあります (winform のように Form1.designer.cs ファイルをネストします)。

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

Visual Studio でのネスト ファイル

于 2009-12-02T15:06:42.833 に答える
5

拡張したい自動生成コードがある場合、部分クラスはそれを行う優れた方法です。

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

于 2009-12-02T14:59:33.347 に答える
3

イベント ハンドラーとその他の GUI コードを 1 か所に配置し、その他の非 GUI 関連コードを 1 か所に保持したいとします。C# では難しい MVC パターン。

于 2009-12-02T15:00:29.273 に答える