2009-06-26 27 views
14

名前空間とスポンサークラスにはどのような命名規則を使用していますか? (拡張メソッド定義を保持するクラス)拡張メソッドの名前空間とスポンサークラスの命名規則

標準/推奨の.NET Framework命名規則はありますか? (「フレームワーク設計ガイドライン、第2版」は、使用しない名前空間についてのガイダンスのみを提供しています)。

答えて

7

- 私は、標準的なフレームワークに焦点を当てます。名前空間名のガイドライン。拡張メソッドを通常は使用される/関連する意味のある名前空間に入れ、余分な名前空間を持たないようにします。

スポンサークラスの場合 - この場合、それはかなり重要ではありません。私は意味のあるクラス名を選んでみようとしますが、固定されたガイドラインはないようです。

ここで重要なことは、スポンサークラスがあなたの拡張メソッドのユーザによって実際に直接使用/見られることは決してありません。名前空間が含まれている限り、拡張メソッドが正しく検出されます。私は個人的に私の拡張メソッドのためにjrummellと非常によく似たものを使用していますが、MicrosoftはFramework(これの良い例はEnumerableクラスです)ではこれを実行しません。

+1

Reedと私はこれをもっと深く考えているので、これを "The"という答えにするつもりですが、スポンサーのクラス名は、拡張メソッドをサポートしていない.NET言語で問題になります。ここでは、古典的な静的メソッド呼び出し使用する必要があります。 –

13

は私が公式の推奨を見ていないが、私は、[ネームスペース]のように私の拡張クラスを整理してきた[クラス名]拡張機能:名前空間の

ProjectName.Web.Util.ControlExtensions 
ProjectName.Data.Util.CollectionExtensions 
+3

私は同じことをします。また、高度に特殊化された静的拡張メソッドクラスを関連する名前空間に配置して、他の開発者にとってインテリセンスを曇らせることがないようにします。つまり、私の拡張メソッドクラスは、拡張するクラスと同じ名前空間にあるとは限りません。 – jpierson

+1

私は似たようなことをしますが、クラスの代わりに*インタフェース*に拡張メソッドを追加すると、 'IMyInterfaceExtensions'のような醜いクラス名になり、拡張クラス自体がインタフェースであるように見えます:( –