拡張メソッドを使うと、インターフェイスに機能を追加することができる。
System.Linq.Enumerable
クラスは拡張メソッドの好例である。System.Enumerable
には、IEnumerable<T>
に対する、50以上の拡張メソッドが含まれる。
インターフェイスは最小限の機能のみを定義し、追加の機能は拡張メソッドで定義すべきである。
なお、拡張メソッドと同じシグネチャのメソッドがクラスのインスタンスメソッドとして定義されている場合、インスタンスメソッドの方が優先される。
参考:拡張メソッド