C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。
Partial メソッド
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/partial-method
Partial クラスの定義時にメソッドのシグネチャと実装を分けられる。定義できるメソッドは void を返す private メソッドのみ。
class Program { static void Main(string[] args) { new A().Method(); // 実装がないので何も出力されない Console.WriteLine("====="); // ===== new B().Method(); // Class B Method } } // クラス A の PartialMethod メソッドのシグネチャの定義 partial class A { internal void Method() { this.PartialMethod("Class A Method"); } // メソッドのシグネチャの定義 実装はここにはない partial void PartialMethod(string text); } // クラス A の PartialMethod メソッドのシグネチャの実装 partial class A { // メソッドのシグネチャの実装 これは実装のないパターン //partial void PartialMethod(string text) //{ // Console.WriteLine(text); //} } // クラス B の PartialMethod メソッドのシグネチャの定義 partial class B { internal void Method() { this.PartialMethod("Class B Method"); } // メソッドのシグネチャの定義 実装はここにはない partial void PartialMethod(string text); } // クラス B の PartialMethod メソッドのシグネチャの実装 partial class B { // メソッドのシグネチャの実装 これは実装のあるパターン partial void PartialMethod(string text) { Console.WriteLine(text); } }