“クリーン”を維持することの利点は何ですかC#のusingディレクティブのリスト?
-
04-07-2019 - |
質問
VS2008には、Resharperと同様に、ディレクティブを使用してクリーンアップするための削除および並べ替え機能があります。コードが「クリーン」であることは別として、そして、将来存在しないかもしれない名前空間を参照する問題を除去します。 usingディレクティブのリスト?
コードが少ない? コンパイル時間を短縮しますか?
解決
私にとっては、基本的にノイズが少ないことです(さらにResharperを幸せにします!)。
コンパイル時間の改善は最小限になると思います。
他のヒント
必要なusingディレクティブのみが常にあり、常に適切にソートされている場合、2つのバージョンのコードを比較すると、無関係な変更は表示されません。
さらに、きちんと一連のusingディレクティブがある場合、最初にコードを見る人はだれでも、usingディレクティブを見るだけで、何が使用されるかについての大まかなアイデアを得ることができます。
実行時の影響はありません。純粋にコンパイル時間です。以下に影響する可能性があります。
- 名前空間の衝突の可能性が少ない
- 「ノイズ」が少ないコードファイル内
- ファイルでどの名前空間と可能な型を期待するかについて非常に明示的
- メニューを使用して未使用およびソートを削除すると、開発者間でステートメントを使用する際の一貫性が高まります。修正するためだけのダムチェックインの可能性が低くなります。
- ノイズが少ない。
- 使用されるタイプの明確な期待("私のUIレイヤーはSystem.Netに依存しています。わあ、なぜ?")
- よりクリーンな参照:usingステートメントの最小限のセットがある場合、参照をクリーンアップできます。多くの場合、開発者はプロジェクトに参照を投げ続けるだけですが、不要になったときに参照を削除することはありません。実際に参照を必要とするもの(およびusingステートメントのカウント)がない場合、参照をクリーンアップするのは簡単です。 (なぜそれをしたいのですか?コンポーネントに分解された大規模なシステムでは、未使用のdepを排除することでビルドの依存関係を合理化します。)
私にとって、最初に使用するステートメントの簡潔なリストは、期待されるタイプをよく理解するのに役立ちます。
ReSharperを(18プロジェクトソリューションに)初めてインストールしたとき、数年前にコンパイル時間にかなりの増加が見られました。それ以来、それはちょうどそれをきれいに保つことについてでした。
コンパイル時間とパフォーマンスの利点について話すことはできませんが、使用宣言を最小限に抑えた場合、名前空間の衝突の可能性は低くなります。これは、複数のサードパーティライブラリを使用している場合に特に重要です。
コンパイル時の違いが1つあります。参照を削除しても、コードにusingディレクティブが残っていると、コンパイラエラーが発生します。したがって、使用ディレクティブのクリーンなリストがあると、未使用の参照を削除するのが少し簡単になります。
通常、コンパイラは未使用の参照を削除しますが、コード内にusingがある場合にそれが機能するかどうかはわかりません。