partial メソッド (C# リファレンス)
部分メソッドには、部分型の一部に定義されたシグネチャ、および部分型の別の部分に定義された実装があります。 部分メソッドを使用すると、イベント ハンドラーと同じように、開発者が実装するかどうかを決定できるメソッド フックをクラス デザイナーで提供できます。 開発者が実装を指定しない場合、コンパイラはコンパイル時にシグネチャを削除します。 部分メソッドには次の条件が適用されます。
宣言は、コンテキスト キーワード partial で始まる必要があります。
部分型の両方の部分のシグネチャが一致する必要がある。
partial
キーワードは、コンストラクター、ファイナライザー、オーバーロードされた演算子、プロパティ宣言、またはイベント宣言では使用できません。
次の場合には、部分メソッドを実装する必要はありません。
これらのすべての制限に準拠していないメソッド (public virtual partial void
メソッドなど) は、実装を提供する必要があります。
部分クラスの 2 つの部分に定義された部分メソッドを次の例に示します。
namespace PM
{
partial class A
{
partial void OnSomethingHappened(string s);
}
// This part can be in a separate file.
partial class A
{
// Comment out this method and the program
// will still compile.
partial void OnSomethingHappened(String s)
{
Console.WriteLine("Something happened: {0}", s);
}
}
}
部分メソッドは、ソース ジェネレーターと組み合わせて使用することもできます。 たとえば、regex は、次のパターンを使用して定義できます。
[GeneratedRegex("(dog|cat|fish)")]
partial bool IsPetMatch(string input);
詳細については、「部分クラスと部分メソッド」を参照してください。