ReSharper 2024.1 ヘルプ

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

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

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

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

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

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

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

  3. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押してから、左側のコード編集 | C# | 構文スタイルを選択します。

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

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

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

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

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

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

    • 'global ::' プレフィックスを許可する — このチェックボックスが選択されている場合、global:: プレフィックスは global::System.String と同様に削除されません。詳細については、「:: オペレーター - 名前空間のエイリアス演算子」を参照してください。

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

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

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

Namespace import quick-fix

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

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

ここで説明する手順と例では、C# の機能の使用について説明します。他の言語の詳細については、言語別 ReSharper セクションの対応するトピックを参照してください。

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

ネームスペースシンボルの使用を削除すると、インポートされたネームスペースはコード内で冗長になります。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 を押して実行できます。名前空間インポートの最適化と他のコードスタイルタスクを組み合わせたカスタムクリーンアッププロファイルを作成することもできます。

名前空間のインポートの設定を、他のすべてのフォーマットおよび構文スタイルのルールとともに、選択したコードブロック Alt+Enter に適用するには、再フォーマットとクリーンアップ | 構文スタイルを再フォーマットして適用するを選択します。

変更をファイルに保存するたびに名前空間のインポートを最適化して、編集内容が常にコードスタイルに準拠するようにすることができます。

変更を保存するときに名前空間のインポートを自動的に最適化する

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

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

  3. デフォルトに設定を選択してクリックします (デフォルトのプロファイルはサイレントクリーンアップにも使用されます)。

  4. コード編集 | コードのクリーンアップ | 一般オプションページに移動し、ファイルの保存時にクリーンアップを自動的に実行するを選択します。

    オプションで、ファイルマスクによって特定のファイルへの自動クリーンアップを制限できます。ファイルの変更された部分のみを選択して、変更によって影響を受けるコードにクリーンアップが適用され、ファイル内の残りのコードが変更されないようにすることもできます。

  5. ダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。

  6. 次回編集を終了してファイル (Ctrl+S) またはすべてのファイル (Ctrl+Shift+S) を保存すると、ReSharper は選択したプロファイルを使用して影響を受けるファイルをクリーンアップします。デフォルトのクリーンアッププロファイルが選択されていない場合、ReSharper はプロファイルの 1 つを選択するよう求めます。

関連ページ:

ReSharper 設定の管理と共有

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

設計時にコードの問題を分析する

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

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

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

フォーマットルールを適用する

編集および貼り付けられたコードの自動フォーマット:エディターでコードを入力すると、セミコロンを入力するとすぐに ReSharper によって式が再フォーマットされ、閉じ括弧を入力するとすぐにコードブロックが再フォーマットされます必要に応じて、ReSharper オプション Alt+R, O のページでこれらの種類の自動フォーマットを無効にすることができます。ReSharper では、コードを貼り付けるときにフォーマットルールを自動的に適用することもできます。デフォルトでは、貼り付けられたコードは完...

さまざまな言語の ReSharper 機能

以下の表は、各 ReSharper 機能がサポートされている言語 / テクノロジーを説明しています。これらは言語固有の機能のみをリストし、プロジェクト依存関係ダイアグラム、名前空間の調整リファクタリング、スタックトレースエクスプローラーなどのプロジェクト / ソリューションスコープの多くの機能を含まず、最近のファイルを表示します。コード解析:コードインスペクション

ASP.NET MVC 特有の機能

ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト:ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト: コード補完:文字列リテラルでアクションとコントローラーを参照するための専用コード補完: ナビゲーションと検索:さまざまなナビゲーション機能がアクションとコントローラーでも機能します。コード生成:使用箇所から新しいコントローラーとアクションを作成する: 最終...