0

ソリューションで名前空間を取得するにつれて、ファイルの先頭にあるusingステートメントのリストがどんどん長くなります。これは特に、呼び出される可能性のあるコンポーネントごとに、インターフェイス、IoCコンテナ、および具象タイプの使用を含める必要がある単体テストの場合です。

私の統合テストファイルで17行以上使用していると、まったく面倒になります。ステートメントを使用してベースのマクロを定義する方法があるかどうか誰かが知っていますか?他の解決策はありますか?

4

10 に答える 10

6

これを大声で言うべきではないことはわかっていますが、おそらくあなたのデザインを再考してください.

1 つのファイルで 17 の usings = 多くの結合 (名前空間レベルで)。

于 2008-09-15T12:08:49.170 に答える
4

一部の人々は、で使用法を隠すことを楽しんでい#regionます。そうでなければ、私はあなたが運が悪いと思います。すべての指示対象に名前空間を配置したい場合を除きます。

于 2008-09-15T11:44:04.033 に答える
2

自分で Resharper を我慢できません。しかし、乱雑な using ステートメントも我慢できません。私は VS 用のPower Commandsアドインを使用しています。これには、ステートメント コマンドを使用した便利な 'Remove and Sort' があります (他の優れた機能の中でも特に)。

于 2008-09-15T12:19:39.830 に答える
2

ここには 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.DataSystem.Drawing、およびを同じクラスで参照している場合はSystem.IO、データベースにアクセスするもの、画像を描画するもの、ファイル システムにアクセスするものなど、よりアトミックなテストを作成することを検討してください。次に、各タイプを 3 つのテスト クラスに分割します。

あなたはあまりにも多くのことをするテストを書いています。多くの名前空間を参照している場合、テストで結合している機能が多すぎる可能性があります。この種の結合はしばしばバグが発生する可能性があるため、大きくて広範囲にわたる関数を小さな部分に分割し、これらを別々のファイルでテストしてください。

多くは冗長です。それらはすべて使用されていますか、それとも他のファイルからコピーして貼り付けただけですか。コード エディターを右クリックし、[次を使用して整理] オプションから選択して、未使用のステートメントを削除します。

于 2008-09-15T12:45:20.737 に答える
1

ステートメントを使用してベースのマクロを定義する方法があるかどうかは誰にもわかりませんか?

頻繁に使用する名前空間は、新しいクラスごとに自動的に追加されるということですか? はいの場合、Resharper もそれを行うことができます。さらに、コードのクリーンアップ時に使用をリージョンに配置する機能があります。Resharper が最適な方法かもしれません (私自身の経験から言えば、後悔することはありません)。

于 2008-09-15T11:59:23.733 に答える
1

VS2008 では、並べ替え、削除、およびファイルごとに必要な操作を行う「削除と並べ替え」オプションを備えた「使用の整理」コンテキスト メニューが追加されました。Visual Studio Power Commands アドインは、プロジェクトとソリューションのソリューション エクスプローラーにコンテキスト メニューを追加します。これは、プロジェクト内のすべてのファイルとソリューション内のすべてのプロジェクトのそれぞれに対する "削除と並べ替え" です。

于 2008-09-15T12:24:18.087 に答える
1

新しいファイルを作成するときに実行されるデフォルトの using ステートメントを変更する場合は、C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033 ディレクトリを参照してください。これには、コード ファイルのテンプレートを変更するために変更できる一連の zip ファイルが含まれています (他の言語や他の種類のファイルを変更するには、ディレクトリ構造を上に移動する必要があります)。

詳しくはこちらをご覧ください。

于 2008-09-15T12:31:28.477 に答える
1

エイリアシングを使用すると役立つ場合があります。それだけの価値があるかどうかはわかりませんが、代わりに:

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 ...
于 2008-09-15T13:12:48.173 に答える
0

Resharper(Visual Studioのアドイン)には、ファイルから未使用のUsingを削除する機能がありますが、あなたが説明していることを完全に実行するものは何もわかりません。

于 2008-09-15T11:43:26.517 に答える
0

VS2008 では、CS ファイルを右クリックして、[使用の整理] を選択できます。未使用の使用を取り除き、あなたのためにそれらを並べ替えます。それ以外は #region を使用します。また、CTRL+ M+Oは、設計時にすべてのリージョン関数などを折りたたみます。私はこのショートカットをよく使います!

于 2008-09-15T12:26:21.373 に答える