ReSharper 2020.2ヘルプ

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

各ソースコードファイルには、適切な名前空間のインポートセット(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つのオプションは、コードのクリーンアップです。以下に説明するように、デフォルトのデフォルト: フルクリーンアッププロファイルを使用してコードのクリーンアップを実行するか、または特定のタスクを対象としたカスタムプロファイルを作成して実行することができます。

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

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

  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を押して実行できます。名前空間のインポートの最適化を他のコードスタイルのタスクと組み合わせるカスタムクリーンアッププロファイルを作成することもできます。

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

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is available in C#Feature is available in Visual Basic .NETFeature is not available in C++Feature is not available in HTMLFeature is available in ASP.NETFeature is available in RazorFeature is not available in JavaScriptFeature is available in TypeScriptFeature is not available in CSSFeature is not available in XMLFeature is not available in XAMLFeature is not available in Resource filesFeature is not available in build script filesFeature is not available in ProtobufFeature is not available in JSON

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

最終更新日:

関連ページ:

ReSharper設定の管理と共有

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

設計時にコードの課題を検出する

ReSharperは、エディターでコード・ファイルを開くとすぐに分析を開始し、最後まで編集を続けます。検出されたすべてのコードの課題は、重大度に従ってエディターで強調表示されます。課題のマップは、エディターウィンドウの右側のマーカーバーにも表示されます。ここでは、ファイルのステータスを即座に確認し、...

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

ファイルに名前空間がインポートされていない型を使用する場合、ReSharperはこれらの型を見つけて不足している名前空間インポートディレクティブを追加できます。たとえば、ファイルにコードのブロックを貼り付けた後など、未解決の型にいくつかの不足している名前空間がある場合、ReSharperはこれらすべ...

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

コード注釈を使用して、ReSharperがコードをインスペクションする方法をカスタマイズすることもできます。設計時コードインスペクションを構成する:デフォルトでは、ReSharperは、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効に...

コードの課題のクイックフィックス

ReSharperを使用すると、設計時に検出されたほとんどのコード課題を即座に修復できます。強調表示されたコードの課題で を押して、課題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。クイックフィックスを適用する:クイックフィックスは、ハイライトされた...

スコープの修正

ほとんどのクイックフィックスは、キャレットで現在の課題を修正できますが、中には (たとえば、未使用のディレクティブを削除する、フィールドを読み取り専用にする、冗長なキャストの除去など)、現在のファイル、現在のプロジェクト、またはソリューション全体など、より大きな範囲で課題を自動的に見つけて修正できる...