重複の可能性:
抽象クラスではなく部分クラスを使用する利点は何ですか?
C# で部分クラスを作成する用途は何ですか。
それの可能な欠点は何でしょうか。
部分クラスは、VisualStudioDesignersによって一般的に使用されます。たとえば、Entity Frameworkデザイナー、WinForms、WPF、ASP.NETデザイナーなど。常に部分クラスを生成するため、後でこの部分クラスにプロパティとメソッドを追加し、設計者が最初に自動生成したクラス定義では使用できなかったカスタム機能を実装できます。
それの考えられる欠点は何でしょうか。
クラスの定義を異なる.cs
ファイルに分割できるようになったため、ソースコードを読んでいる開発者は、このクラスのすべてのビットがどこにあるかを知ることができなくなりました。クラスの定義は単一のファイルに一元化されなくなりましたが、同じプロジェクト全体に展開される可能性があります。したがって、基本的に、部分的なクラスで悪用し始めると、混乱の地獄に陥る可能性があります。
部分クラスは、WPF、Silverlight などのテクノロジで使用されます。これらの場合、アプリケーションの設計とその機能に関連するコードを分離するために、クラスは部分的に作成されます。Windows フォームでは、Visual Studio がデザイン コード パーツを自動的に生成します (デザイン ユーザーが UI デザイナー ツールで送信した場合)。WPF では、XAML もその場で部分クラスにコンパイルされます。
部分クラスは、クラスの定義を分割できるようにするために使用されます。これは、複数のファイルまたはファイルの複数のセクションでクラスを定義できることを意味します。WinForms などでわかるように、自動生成されたコードをユーザー コードから分離するために、.NET フレームワーク自体で最も一般的に使用されます。
部分クラスを実際に使用し始める明確な理由があり、それはそれほど一般的ではありませんが、部分クラスを使用することに実際には欠点はありません。