私は少しきちんとしたフリークで、using
実際に使用されているものだけを保持するために各クラスの参照とsをクリーニングすることでプロジェクトを維持する傾向があります。
(OCDの神経を落ち着かせる以外に)必需品を守ることについて、他にどのような議論ができますか?私は主にシステム参照を考えています、カスタム作業への参照は多くの後方互換性の問題をもたらします。リリースのフットプリントは大きいですか?コンパイル時間は長くなりますか?
私は少しきちんとしたフリークで、using
実際に使用されているものだけを保持するために各クラスの参照とsをクリーニングすることでプロジェクトを維持する傾向があります。
(OCDの神経を落ち着かせる以外に)必需品を守ることについて、他にどのような議論ができますか?私は主にシステム参照を考えています、カスタム作業への参照は多くの後方互換性の問題をもたらします。リリースのフットプリントは大きいですか?コンパイル時間は長くなりますか?
回答:
IntelliSenseはusing
、最小限に抑えると、非常に便利になります。これは大きな利点です。
それ以外は、利益があるとは思いません。したがって、C#コンパイラは、たとえば1%速く動作する可能性があります。だから何。
Ctrl+.
「名前空間を追加クイックフィックスにXYZ
」
using
実際には不要であると判断するまでsを無視できませんが、最初にソースファイル全体をコンパイルしない限り、s は無視できません。プロジェクト参照と同様に、それらは使用されていないように見えるという理由だけで破棄されません。動的に(コンパイル時に検出できない)方法で使用される可能性があるためです。
Visual Studio(シンプルな右クリック)でこれを達成するのは事実上簡単なので、なぜそうしないのですか?
これはOccamのRazorと一致しており、単なる優れたエンジニアリングです。
それを行わなかった場合の結果については、他の開発者がプロジェクトを開こうとして、自分のコンピューターにないライブラリへの(未使用の)参照が含まれている場合にどうなるかを検討してください。貧しい開発者は、その未解決の参照が存在する理由とその対処方法を理解する必要があります。
必要に応じて、黄金律の観点から検討してください。コンピューターにはないライブラリへの参照が多く、なぜそこにあるのかわからなかったプロジェクトの開発を引き継ぎたいですか?
using
ステートメントは、単にコンパイラーがクラスなどを完全に参照できるようにするためのものです。余分なusing
ステートメントは、コンパイル時間に大きな影響を与えません。
また、ランタイムは、実際に必要になるまで参照アセンブリをロードしないので、不必要な参照の悪影響はないと思います。
Reflectorのようなツールを使用する場合、これらの不要なビットの検出と削除はほとんど自動化できるため、これらのアクティビティに多くの時間を費やすのは無駄だと思います。たとえばusing
、Reflectorライセンスの支払い以上に不要なステートメントを1〜2時間手動で削除します。また、他の多くの生産性向上機能が付属しています。
using
のsと未使用の参照の区別を明確に表現するためのものです。2つは非常に異なっています!
上記に加えて、ここではまだ言及していなかったと思いますが、各参照には.NETフレームワーク内または外部DLL内のコンポーネントが必要です。外部DLLを参照する場合、ソフトウェアを実行するとき(および実行する場所)にそれが必要になります。
編集-以下のphoogによる有効なコメントに従って:DLLが使用されていない場合でもアプリケーションは実行され、参照に追加されたという理由だけでアプリケーションと共に出荷する必要はありません。コード内の未使用の参照を処理するには、「未使用の参照の削除」をご覧ください。
using
sとreferenceは同じものではないことに注意してください。答えの多くはそれを考慮に入れていません。