2009-04-28 15 views
2

約20件の最近の質問が重複しています。誰かがそれらをリンクしてください。.Net拡張メソッド対ユーティリティクラス

シンプルなシナリオでは、どちらを使うべきですか?プロ&の賛否は何ですか?

拡張メソッドの使用に関する推奨事項は何ですか?

編集:

例を挙げておきます。私は文字列として表されるWeb相対パスを持っていると言うことができます。今、私は、1)パスが '/ en/or'/fr/'2で始まるかどうかを確認するメソッドを書いたがっています。

例えば拡張メソッド

public static string ToLocaleRelativePath(this string s, string contextPath) 
     { 
//1. Check if string begins with a locale 
//2. If it does not prepend the value extracted from the context path 
} 

、このような操作はexteniosn方法に適していますか、それは、ユーティリティすべきですか?それが唯一の相対URLを表す文字列のためではなく、すべての文字列のために理にかなっているので

おかげで、あなたの例では

答えて

8

は、ユーティリティクラスは、おそらくより適切です。対照的に、すべての(または大多数の)文字列に適用されるメソッド(トリムまたはリバースメソッド(存在しない場合)など)は、拡張メソッドとしてうまく適合します。

0

ユーティリティクラスは、OOPパターンに矛盾する悪い習慣を与え、奨励するため、いくつかの良いヒントがあります(thisthisを検討してください)。