.cs ファイルの先頭にある using の長いリストを削除する方法はありますか?
-
09-06-2019 - |
質問
ソリューション内の名前空間が増えるにつれて、ファイルの先頭にある using ステートメントのリストがどんどん長くなっていきます。これは特に、呼び出される可能性のあるコンポーネントごとに、インターフェイス、IoC コンテナー、具象型の使用を含める必要がある単体テストに当てはまります。
私の統合テストファイルには 17 行以上の using があり、まったく面倒になってしまいます。ステートメントを使用してベースのマクロを定義する方法があるかどうかを誰かが知っていますか?他に解決策はありますか?
解決
中には使用法を隠すのを楽しむ人もいます。 #region
. 。そうでなければ、運が悪いと思います。すべての参照対象に名前空間を設定する場合を除きます。
他のヒント
これを大声で言うべきではないことはわかっていますが、デザインを再考してください。
1 つのファイルで 17 の使用 = 大量の結合 (名前空間レベルで)。
私自身、リシャーパーには耐えられません。しかし、私はステートメントを乱雑に使用することにも耐えられません。私が使用するのは、 パワーコマンド VS 用のアドイン。これには、ステートメント コマンドを使用した便利な「削除と並べ替え」(特に優れた機能) があります。
ここで考えられる問題は 4 つあります。
コード内の名前空間がクラスを細かく分割しすぎています。 たとえば、持っている場合。
using MyCompany.Drawing.Vector.Points;
using MyCompany.Drawing.Vector.Shapes;
using MyCompany.Drawing.Vector.Transformations;
それらを単一のものに折りたたむことを検討してください MyCompany.Drawing.Vector
名前空間。おそらく分割しすぎても利益は得られません。Visual Studio Code Analysis/FxCop には、名前空間内のクラスの数をチェックする、これに関するルールがあります。少なすぎると警告が表示されます。
同じクラスに多すぎるテストを入れています。 参照している場合 System.Data
, System.Drawing
, 、 そして System.IO
同じクラス内で、より多くのアトミック テスト (データベースにアクセスするテスト、イメージを描画するテスト、ファイル システムにアクセスするテスト) を作成することを検討してください。次に、各タイプを 3 つのテスト クラスに分割します。
やりすぎるテストを作成しています。 多数の名前空間を参照している場合、テストで結合している機能が多すぎる可能性があります。この種の結合にはバグが多い可能性があるため、大きくて広範囲にわたる関数を小さな部分に分割し、個別のファイルでテストするようにしてください。
多くは冗長です。 これらはすべて使用されているのでしょうか、それとも他のファイルからコピー&ペーストしただけなのでしょうか。コード エディターを右クリックし、[次を使用して整理] オプションを選択して、未使用のステートメントを削除します。
ステートメントを使用して私のベースのマクロを定義する方法があるかどうかを知っていますか?
頻繁に使用する名前空間は、新しいクラスごとに自動的に追加されるということですか?はいの場合、Resharper もそれを行うことができます。さらに、コードのクリーンアップ時に using を領域に配置する機能もあります。Resharper が最適な方法かもしれません (私自身の経験から言えますが、後悔することはありません)。
VS2008 では、「使用内容の整理」コンテキスト メニューが追加されました。このメニューには、ファイルごとに必要な処理を行う並べ替え、削除、および「削除と並べ替え」オプションがあります。Visual Studio Power Commands アドインは、プロジェクトおよびソリューションのソリューション エクスプローラーにコンテキスト メニューを追加します。これは、それぞれプロジェクト内のすべてのファイルとソリューション内のすべてのプロジェクトに対する「削除と並べ替え」です。
新しいファイルの作成時に実行されるデフォルトの using ステートメントを変更する場合は、C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033 ディレクトリを参照してください。これには、コード ファイルのテンプレートを変更するために変更できる zip ファイルが多数含まれています (他の言語や他の種類のファイルを変更するには、明らかにディレクトリ構造を上に移動します)。
見る ここ 詳細については。
エイリアシングを使用すると役立つ場合があります。それだけの価値があるかどうかはわかりませんが、代わりに:
using System.Web.UI;
using System.Web.Mail;
using System.Web.Security;
... Control ...
... MailMessage ...
... Roles ...
使用できます:
using W = System.Web;
... W.UI.Control ...
... W.Mail.MailMessage ...
... W.Security.Rolse ...
Resharper (Visual Studio のアドイン) には、ファイルから未請求の using を削除する機能がありますが、あなたが説明したとおりの機能を私は何も知りません。
VS2008では、CSファイルを右クリックして「使用内容の整理」を選択できます。使用していないものを取り除き、分類することもできます。それ以外では、#region を使用します。また、 CTRL+M+○ 設計時にすべての領域関数などが折りたたまれます。私はこのショートカットをよく使います!