ReSharper 2021.1 ヘルプ

コードの構文スタイル: 名前空間のインポート

各ソースコードファイルには、適切な名前空間のインポートセット(C# の using ディレクティブ)が必要です。インポートがないと、コードはコンパイルされません。未使用のインポートがあると、コードの維持が困難になる可能性があります。さらに、名前空間のインポートにはさまざまな方法があります。たとえば、using ディレクティブを追加するか完全修飾型名を使用するか、using ディレクティブをファイルの上または名前空間内に配置することができます。

ReSharper は、好みに応じて名前空間のインポートのすべての側面を制御し、自動的に更新するのに役立つ多くの機能を提供します。

名前空間のインポート設定を構成する

名前空間インポートの設定は、レイヤーベースの設定のメカニズムを使用して保存されます。とりわけ、このメカニズムにより、さまざまなソリューションのさまざまな設定を維持したり、これらの設定を VCS に保持したり、チームメンバーと自動的に共有することができます。

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押してから、左側のコード編集 | C# | 名前空間のインポートを選択します。

  2. このオプションページでは、決して削除する必要がない名前空間や、常にインポートする名前空間を指定できます。

  3. ReSharper オプションのコード編集 | C# | 構文スタイルページを開きます。

  4. 参照修飾および 'using' ディレクティブグループの設定を使用して、ネームスペースのインポートスタイルを微調整します。

    • 完全修飾参照を推奨する — インポートされたタイプに名前空間インポートディレクティブではなく完全修飾名を使用する場合は、このチェックボックスを選択します。

    • 最も深いスコープに using ディレクティブを追加する — このチェックボックスが選択されている場合、名前空間インポートディレクティブは、インポートされたタイプが使用される名前空間内に追加されます。それ以外の場合、インポートディレクティブはファイルの先頭に追加されます。

    • 'using' ディレクティブをソートするときは、'System.*' および 'Windows.*' の名前空間を最初に配置してください — このチェックボックスが選択されている場合、using System.Linq; などの 'using' ディレクティブは、ソート時に他の using ディレクティブの上に配置されます。それ以外の場合、これらのディレクティブは他のディレクティブとアルファベット順にソートされます。

    • ネストしたスコープで完全修飾名を使用することを推奨する — このチェックボックスが選択されている場合、インポートされた型の完全修飾名がネストされた型と名前空間で優先されます。

    • エイリアスディレクティブの使用を許可 — このチェックボックスを選択すると、完全修飾名前空間名ではなく、名前空間インポートディレクティブでエイリアスを使用できます。

    • 'global ::' プレフィックスを許可する — このチェックボックスが選択されている場合、global::System.String のように、global:: プレフィックスは削除されません。詳細については、使い方: グローバル名前空間エイリアスを使用する(英語)を参照してください。

  5. オプションダイアログで保存をクリックして変更を適用し、ReSharper に保存場所を選択させるか、次へ保存リストを使用して変更を特定の設定レイヤーに保存します。詳細については、ReSharper 設定の管理と共有を参照してください。

欠落している名前空間をインポートする

ReSharper を使用すると、名前空間のインポートが不足しているシンボルを検出し、適切なインポートを自動的に追加できます。未解決のシンボルはエディターですぐにハイライトされ、対応する修正が提案されます。

Namespace import quick-fix
ファイルにいくつかの未解決のシンボルがある場合、修正により、それらすべてのインポートが追加されます。インポートは、名前空間インポートの構成された設定に従って追加されます。詳細については、不足している名前空間をインポートするを参照してください。

冗長な名前空間のインポートを削除し、既存のものを最適化する

ネームスペースシンボルの使用を削除すると、インポートされたネームスペースはコード内で冗長になります。ReSharper がないと、すべてのファイルの先頭にスクロールし、未使用のネームスペースインポートディレクティブを見つけて削除する必要があります。ReSharper を使用すると、ファイル、プロジェクト、またはソリューションから未使用のネームスペースインポートディレクティブを自動的に削除できます。余分な名前空間のインポートを削除する以外に、ReSharper はあなたの名前空間のインポート設定に従っていくつかの方法で最適化することができます。

冗長な名前空間のインポートはすべてハイライトされてエディターであり、対応するクイックフィックススコープ内の修正を含めて提案されます

Unused namespace import quick-fix
提案された修正を適用することで、冗長な名前空間を必要な範囲で即座に削除することができます。

バルクモードで冗長な名前空間のインポートを削除する別のオプションは、コードのクリーンアップです。以下に説明するように、ビルトイン: フルクリーンアッププロファイルを使用してコードのクリーンアップ実行するか、特定のタスクのみを対象としたカスタムプロファイルを作成して実行することができます。

クイックフィックスとは対照的に、コードのクリーンアップは、未使用のインポートを削除するだけでなく、既存のインポートを最適化して最適化します。例: コードクリーンアップを使用すると、完全修飾型の名前を、対応する名前空間のインポートを追加してプレーン型の名前に置き換えることができます。

コードクリーンアップを使用して名前空間のインポートを最適化する

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押します。

  2. クリーンアッププロファイル設定ページに移動します: コード編集 | コードのクリーンアップ | プロファイル

  3. 新しいカスタムクリーンアッププロファイルを作成するセクションの説明に従って、新しいプロファイルを作成します。新しいプロファイルの選択したプロファイル設定 :

    • 'using' ディレクティブを最適化するを選択します。

    • オプションで、未使用の using ディレクティブをリージョンに含めるには、領域で 'using' ディレクティブを利用するを選択して、領域名フィールドにリージョンの名前を指定します。

  4. オプションダイアログで保存をクリックして変更を適用し、ReSharper に保存場所を選択させるか、次へ保存リストを使用して変更を特定の設定レイヤーに保存します。詳細については、ReSharper 設定の管理と共有を参照してください。

  5. 名前空間のインポートを最適化するスコープを選択します。

    • キャレットをファイルの任意の場所に設定すると、名前空間のファイルへのインポートが最適化されます。

    • ソリューションエクスプローラーの 1 つまたは複数の項目を選択して、これらのノードおよびその子項目にあるファイルの名前空間インポートを最適化します。

  6. 以下のいずれか 1 つを実行します:

    • Control+Alt+F を押すか、メインメニューから ReSharper | 編集 | コードのクリーンアップ... を選択してください。

    • テキストエディターの任意の場所を右クリックするか、選択項目を右クリックし、コンテキストメニューでコードのクリーンアップを選択します。

  7. 開いているコードのクリーンアップダイアログで、新しく作成したプロファイルを選択します。

  8. 実行をクリックします。ReSharper は、選択したスコープ内の名前空間のインポートを最適化します。

コードのクリーンアップダイアログを開いてプロファイルを選択せずに名前空間のインポートを最適化する場合は、作成したプロファイルをサイレントクリーンアップにバインドし、Control+Shift+Alt+F を押して実行できます。名前空間のインポートの最適化を他のコードスタイルのタスクと組み合わせるカスタムクリーンアッププロファイルを作成することもできます。

この機能は、次の言語とテクノロジーでサポートされています。

C# の機能の使用方法については、こちらの説明と例を参照してください。他言語の詳細については、言語による ReSharper の対応するトピックを参照してください。

関連ページ:

ReSharper 設定の管理と共有 | ReSharper

ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例: 記号のアイコンとチーム設定のコード形式を個人設定で保存し、これらの設定を自動的に組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。ReShar...

設計時にコードの問題を検出する | ReSharper

ReSharper は、エディターでコードファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの問題は、重大度に従ってエディターでハイライトされます。問題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、マークをクリックして特定のコードの問題に移動できます。デザインタイムインスペクションの機能:ReSharper によって実行されるデザインタイムコードインスペクションを説明するために、エディターに...

不足している名前空間をインポートする | ReSharper

ファイルに名前空間がインポートされていない型を使用する場合、ReSharper はこれらの型を見つけて不足している名前空間インポートディレクティブを追加できます。たとえば、ファイルにコードのブロックを貼り付けた後など、未解決の型にいくつかの不足している名前空間がある場合、ReSharper はこれらすべての名前空間を 1 回の操作でインポートできます。ReSharper は、現在のプロジェクトで参照されているアセンブリ、ソリューション内の他のプロジェクトで参照されているアセンブリ、推移的に参照さ...

コードインスペクション設定の構成 | ReSharper

設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...

コードの問題のクイックフィックス | ReSharper

ReSharper を使用すると、設計時に検出されたほとんどのコード問題を即座に修復できます。ハイライトされたコードの問題でを押して、問題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。クイックフィックスを適用する:クイックフィックスは、ハイライトされたコードの問題の左側にアクションインジケーターとして視覚的に表示されます。これらのインジケーターは、コードの問題でキャレットを設定すると表示されます。次の指標は、迅速な修正を意味します。 — 重大度エ...

スコープの修正 | ReSharper

ほとんどのクイックフィックスは、キャレットで現在の問題を修正できますが、中には (たとえば、未使用のディレクティブを削除する、フィールドを読み取り専用にする、冗長なキャストの除去など)、現在のファイル、現在のプロジェクト、またはソリューション全体など、より大きな範囲で問題を自動的に見つけて修正できるものもあります。範囲内の修正を適用する:このような修正は、アクションリストの横に表示される小さな矢印で識別できます。範囲内の修正を適用する ReSharper のインスペクションによってハイライトされ...