7

私は答えを知っていると確信していますが、すべてのコードファイルの上でディレクティブを繰り返す必要がないように、C#プロジェクトでグローバルな「using」ディレクティブを定義する方法があるかどうか疑問に思っています。

私の興味は、.NETFrameworkでの拡張メソッドの導入に本当に根ざしています。拡張メソッドを使用する唯一の方法は、拡張メソッドを含む名前空間のusingディレクティブを定義することです。usingディレクティブがないと、拡張メソッドのIntellisense機能が失われます。つまり、使用可能なメソッドが常に表示されるとは限りません。

フレームワーク開発者として、フレームワークで提供されるタイプとメソッドが明確であり、消費する開発者が利用できることを確認することが私にとって重要です。ドキュメントとトレーニングはその目的を果たしますが、ほとんどの開発者は期間を迎え、Intellisenseリストをスクロールして、使用可能なメソッドとプロパティを確認します。オブジェクトブラウザにアクセスしたり、リファレンスドキュメントを表示したりしても、拡張メソッドについて知らない限り、拡張メソッドについてはわかりません。これがIntellisenseの出番です。

また、VSが使用するテンプレートにusingディレクティブを追加することはできますが、VSの[削除して並べ替え]オプションを使用すると、拡張メソッドが使用されていない場合は、拡張メソッドを参照するディレクティブが削除されます。

とはいえ、VS 2010でグローバルな「using」ディレクティブを定義する方法はありますか?そうでない場合は、将来的にMSによって検討される可能性はありますか?

4

7 に答える 7

6

含まれているクラスが名前空間内で宣言されていないことを確認することにより、拡張メソッドをグローバル名前空間に配置できます。これにより、それらがグローバルに利用可能になります。

デフォルトの名前空間に関しては、VSテンプレートを変更することを除けば、これは不可能です。

もちろん、MSがそれを考慮することは常に可能です。可能性は低いですが、可能です。

技術的な解決策を探す代わりに、仲間の開発者を教育し、拡張メソッド(たとえば、既知の場所/名前空間スキーマ)に関する規則を提供することを検討する必要がありますか?

于 2010-11-06T17:02:17.467 に答える
0

実際の問題に答えるために、拡張機能を含む静的クラスを名前空間なしに配置すると、どこでも利用できるようになります。注意して使用してください!

于 2010-11-06T17:12:00.607 に答える
0

それが本当に重要な場合は、ReSharperを購入してすべての開発マシンにインストールすることができます。これにより、usingディレクティブを「自動追加」するオプションを使用して、これらのメソッドのIntellisenseを利用できます。

私が聞いたところ(自分では使用しなかった)、ReSharperはすべての可能なアセンブリをスキャンし、新しいクラスを作成するときに「using」ディレクティブを自動的に追加するように構成できると思いますが、これについては100%確信がありません。

于 2010-11-07T14:45:54.323 に答える
0

usingディレクティブを含むクラスの.netファイルテンプレートを作成できます。

プロジェクトおよびアイテムテンプレートの作成(https://msdn.microsoft.com/en-us/library/ms247121.aspx)を参照してください。

拡張機能を使用しているプロジェクトの一部としてテンプレートを保存できます。ただし、これは別のプロジェクトで行うのが最適です。

于 2017-03-20T14:04:46.630 に答える
0

でそれVS 2010を行うオプションはありませんが、VS 2022グローバルC# 10.0使用を使用することができます。

global using <TheNamespace>;
于 2021-08-15T17:16:56.570 に答える
0

ディレクティブは、 C#10の新しい言語機能です。.NET6で実行する場合、global using特定名前空間implicit globalで使用可能なディレクティブも使用されます。

于 2021-10-21T09:58:22.370 に答える
0

グローバル使用ディレクティブはC#10で導入されています。

プロジェクト全体で次のディレクティブへのアクセスを許可するようにコンパイラーに指示するために、その前にキーワードを配置することを除いて、localusingディレクティブ同じ方法で使用できます。global

global using System;

推奨される標準は、すべてのglobal usingディレクティブをUsings.csファイルに入れて、プロジェクトの他の部分からそれらを分離することです。

于 2022-01-10T20:49:43.300 に答える