最新のC# 言語仕様の部分メソッドについては読んだので原理は理解できましたが、実際にどのように使われているのか気になります。部分メソッドの恩恵を受ける特定の設計パターンはありますか?
5 に答える
部分メソッドは、GoFテンプレート メソッドの動作パターン (デザイン パターン、p325) と概念が非常に似ています。
アルゴリズムまたは操作の動作を 1 か所で定義し、別の場所で実装または変更して、拡張性とカスタマイズを可能にします。C# 3.0 では、テンプレート メソッドの代わりに部分メソッドを使用するようになりました。コードがよりきれいになったと思うからです。
優れた機能の 1 つは、実装されていない部分メソッドがコンパイルされているため、実行時のオーバーヘッドが発生しないことです。
コード生成は、それらが存在する主な理由の 1 つであり、それらを使用する主な理由の 1 つです。
編集: そのリンクは Visual Basic に固有の情報へのリンクですが、同じ基本原則が C# に関連しています。
私はそれらを軽量のイベントと見なしています。再利用可能なコード ファイル (通常は自動生成されますが、必ずしもそうとは限りません) を用意し、実装ごとに、部分クラスで関心のあるイベントを処理するだけです。実際、これが LINQ to SQL での使用方法です (そして、言語機能が発明された理由)。
C#.NET 3.0の部分クラスに最適なリソースは次のとおりです。http://msdn.microsoft.com/en-us/library/wa80x488 (VS.85).aspx
パーシャルクラスの使用は避けようとしています(Visual Studioによってデザイナーファイル用に作成されたパーシャルを除きます。これらはすばらしいものです)。私にとって、クラスのすべてのコードを1か所にまとめることがより重要です。クラスが適切に設計され、1つのものを表す場合(単一責任の原則)、その1つのもののすべてのコードを1つの場所に配置する必要があります。