方法: 1 つのクラスを複数の部分クラスに分割する (クラス デザイナー)

複数の宣言間でクラスまたは構造体の宣言を分割できます。Visual Basic の場合、Partial キーワードを、Visual C# の場合、partial キーワードを使用します。 部分宣言は必要な数だけ使用できます。複数のソース ファイルで使用することも、1 つのソース ファイルで使用することもできます。 ただし、すべての宣言は同じアセンブリおよび同じ名前空間にある必要があります。

部分クラスはいくつかの状況で便利です。 たとえば、大規模なプロジェクトで作業しているとき、クラスを複数のファイルに分割すれば、複数のプログラマーが同時に作業できます。 Visual Studio によって生成されたコードを使用しているとき、ソース ファイルを再作成しなくてもクラスを変更できます。 (Visual Studio によって生成されたコードの例には、Windows フォームと Web サービス ラッパー コードが含まれています。)Visual Studio によって作成されたファイルを変更せずに、自動生成クラスを使用するコードを作成できます。

部分メソッドには次の 2 種類があります。 Visual C# では、宣言 (declaring) と実装 (implementing) と呼ばれています。Visual Basic では、宣言 (declaration) と実装 (implementation) と呼ばれています。

クラス デザイナーは部分クラスとメソッドに対応しています。 クラス ダイアグラムの型シェイプは、部分クラスの単一の宣言場所を参照します。 部分クラスが複数のファイルで定義されている場合、[プロパティ] ウィンドウで [新しいメンバーの場所] プロパティを設定するときにクラス デザイナーにより使用される宣言場所を指定できます。 つまり、クラスのシェイプをダブルクリックすると、[新しいメンバーの場所] プロパティで識別されるクラス宣言を含むソース ファイルにクラス デザイナーが移動します。 クラスのシェイプの部分メソッドをダブルクリックすると、クラス デザイナーは部分メソッド宣言に移動します。 また、[プロパティ] ウィンドウの [ファイル名] プロパティは宣言場所を参照します。 部分クラスの場合、[ファイル名] には、そのクラスの宣言と実装コードを含むファイルがすべて一覧表示されます。 ただし、部分メソッドの場合、[ファイル名] には、部分メソッド宣言が含まれるファイルのみが一覧表示されます。

次の例では、クラス Employee の定義が 2 つの宣言に分割され、それぞれが別のプロシージャを定義します。 この例にある 2 つの部分定義は、1 つのソース ファイル内にあっても、2 つの異なるソース ファイル内にあってもかまいません。

注意

Visual Basic では、部分クラス定義を使用し、Visual Studio によって生成されたコードとユーザーが作成したコードを分離します。 コードは別個のソース ファイルに分割されます。 たとえば、Windows フォーム デザイナーでは、Form などのコントロールに部分クラスを定義します。 これらのコントロールでは、生成されたコードを変更しないでください。

Visual Basic の部分型に関する詳細については、「Partial」 (部分型) を参照してください。

Visual Basic でクラス定義を分割するには、次の例のように、Partial キーワードを使用します。

' First part of class definition.  
Partial Public Class Employee  
    Public Sub CalculateWorkHours()  
    End Sub  
End Class  

' Second part of class definition.  
Partial Public Class Employee  
    Public Sub CalculateTaxes()  
    End Sub  
End Class  

Visual C# でクラス定義を分割するには、次の例のように、partial キーワードを使用します。

// First part of class definition.  
public partial class Employee  
{  
    public void CalculateWorkHours()  
    {  
    }  
}  

// Second part of class definition.  
public partial class Employee  
{  
    public void CalculateTaxes()  
    {  
    }  
}  

関連項目

部分クラスと部分メソッド
partial (型)
partial (メソッド) (C# リファレンス)
Partial