コンテキストアクション
コンテキストアクションは、エディターで直接利用できるコード変換ヘルパーです。 クイックフィックスとは対照的に、コンテキストアクションは問題の解決やコードの改善を目的としているためはなく、アクセス修飾子の変更、null をチェックするコードの生成、'foreach' の 'for' への変換などの小さな変更をすばやく導入できます。
ReSharper は、サポートされているすべての言語で数百のコンテキストアクションを提供します。 完全なリストは、 ページおよび ReSharper オプション Alt+R、O 、さらに コンテキストアクションのリスト にあります。
コンテキストアクションを適用する
現在のキャレット位置でコンテキストアクションが利用可能になると、ReSharper は対応する アクションインジケーター
をキャレットの左側に表示します。 ただし、ReSharper が現在のキャレット位置で複数のコンテキスト関連の機能を提供する場合もあります。 この場合、最も優先度が高いアクションに対応するアクションインジケーターが表示され、他のすべてのアクションはアクションインジケーターをクリックするか Alt+Enter を押して アクションリストを展開したときにのみ表示されます。コンテキストアクションは優先度が最も低いため、アクションリストの下部に表示されることが多いです。

ほとんどの場合、コンテキストアクションはすぐに適用されます。 ただし、一部のアクションでは、コードをどの程度正確に変換するかを選択するためにユーザーの操作が必要です。 このような場合、 ホットスポットセッション がエディターにデプロイされ、提案された値の 1 つを選択するか、アクティブな入力位置に独自の値を指定できます。
例: 'foreach' を介してコレクションを反復する コンテキストアクションを適用すると、次のようになります。

foreach ステートメントを作成した後、ホットスポットセッションを使用すると、生成されたステートメントの編集可能なパラメーターを補完させることができます。

ホットスポットセッションを完了するには:
ReSharper が現在のパラメーターに値を提案している場合、 アップ および ダウン の方向キーで推奨値のリストを移動するか、希望の値を直接入力してください。
タブ または Enter を押して値を確定し、次のパラメーターの入力位置に移動します。 これが最後のパラメーターである場合、ホットスポットセッションは完了し、キャレットはセッション用に定義された終了位置に移動します。
Shift+Tab を押すと、前のパラメーターの入力位置に入力フォーカスが移動します。
Esc を押してホットスポットセッションを終了します。 この場合、すべてのセッションパラメーターはデフォルト値で初期化されます。
コンテキストアクションを構成する
デフォルトでは、ほとんどのコンテキストアクションが有効になっていますが、役に立たないと思われるアクションは簡単に無効にすることができます。
メインメニューから を選択するか、 Alt+R O を押します。
オプション ダイアログの検索フィールドを使用して、特定のコンテキストアクションを見つけます。
または、 ページを開き、無効にするコンテキストアクションを探します。
コンテキストアクションの横にあるチェックボックスをオフにして、無効にします。
オプション ダイアログで 保存 をクリックして変更内容を適用し、ReSharper に保存場所を任せるか、 保存先 セレクターから特定のレイヤーを選択して変更を保存します。 詳細については、 resharper 設定の管理と共有 をご参照ください。
より広い範囲でコンテキストアクションを適用する
コンテキストアクションの中には、現在のファイル、現在のプロジェクト、ソリューション全体で、より広い範囲の類似したコード項目を自動的に検索および変更できるものがあります。 これらのコンテキストアクションは、 スコープを修正 と同じように機能します。 例: すべてのタイプを現在のファイルから新しい一致するファイルに移動できます:

広い範囲に適用できるコンテキストアクションの完全なリストは次のとおりです。
C++
定義を宣言順に並べ替える
C#
別のアクセサーを追加する
switch セクションステートメントにブロック波括弧を追加する
波括弧を追加する
分解パターンコンポーネント名を追加
匿名プロパティの明示的な名前を追加する
引数に名前を追加
タプルコンポーネント名を追加
「#pragma」ディレクティブに警告説明コメントを追加する
'set' と 'init' アクセサーを切り替える
リスト風言語構造の Chop フォーマット
匿名型をタプルに変換する
配列作成またはコレクション初期化をコレクション式に変換する
コレクションイニシャライザーを 'Add' メソッド呼び出しに変換する
明示的実装を暗黙的実装に変換する
式本文メンバーをステートメントの本文に変換する
式を「StringBuilder」に変換する
式を「StringBuilder」呼び出しに変換する
暗黙的インターフェース実装を明示的インターフェース実装に変換する
整数リテラルをバイナリ形式に変換する
整数リテラルを 16 進形式に変換する
整数リテラルを 10 進形式に変換する
メンバー値チェック式を再帰パターンに変換する
複数行文字列を個別の「AppendLine」呼び出しに変換する
not null チェックをオブジェクトパターンチェックに変換する
オブジェクトイニシャライザーを代入ステートメントに変換する
オブジェクトイニシャライザーをコンストラクター呼び出しに変換する
文字列補間を文字列結合に変換する
文字列補間を「string.Format」呼び出しに変換する
'switch' 式を条件 ?: 式に変換する
'switch' 式を 'if' ステートメントに変換する
'switch' 式を 'switch' ステートメントに変換する
'switch' ステートメントを 'if' ステートメントに変換する
'switch' ステートメントを 'switch' 式に変換する
配列作成式に変換する
クラシック拡張メソッドに変換する
クラシック拡張メソッドに変換する
コレクションイニシャライザーに変換する
個別の「Append」「AppendLine」呼び出しに変換する
'using' ステートメントに変換する
逐語的文字列補間へ変換する
逐語的文字列リテラルに変換する
'with' 式を一時変数のミューテーションに変換する
'params' パラメーター引数からコレクション式を作成する
'params' パラメーター引数から明示的な配列作成を作成する
'params' パラメーター引数から明示的なコレクション作成を作成する
プライマリコンストラクターの明示的なコンストラクター宣言を作成する
プライマリコンストラクターのパラメーターの明示的なフィールド宣言を作成する
位置パラメーターの明示的なプロパティ宣言を作成する
コメントの削除
型、静的メンバー、または名前空間への参照を完全修飾する
メンバーアクセスをオブジェクトパターンに含める
インライン一時変数
エイリアスインライン化
変数を条件式にインライン化する
整数リテラルに桁区切り記号を挿入する
実数リテラルに桁区切り記号を挿入する
ジェネリックメソッド呼び出しの型引数を挿入する
ラムダ式パラメーターのシグネチャーを挿入する
ラムダ式の戻り値の型指定を挿入する
default リテラルの後に型指定を挿入する
拡張メソッドを通常の static メソッドとして呼び出す
属性を単一セクションに結合する
ローカル変数の宣言と代入を結合する
連続したチェックを null 伝播式にマージする
連続する null/パターンチェックを単一のパターンチェックにマージする
#nullable enable に移行する
アノテーションを部分宣言の別の部分に移動する
コンストラクター内の代入をイニシャライザーに移動する
型を名前と一致するように別ファイルに移動する
'using static' ディレクティブでインポートされた静的メンバーを修飾する
(#region ブロックを追加および削除する を参照)
引数名の除去
分解パターンコンポーネント名を削除
数値リテラルから桁区切り記号を削除する
(コードの構文スタイル: オプションの括弧 を参照)
冗長なプリプロセッサーの丸括弧を削除する。
タプルコンポーネント名を削除
「?:」条件演算子を null 伝播式で置き換える
配列イニシャライザーを式で置き換える
自動実装プロパティアクセサーを明示的実装アクセサーに置き換える
自動プロパティをプロパティとバックフィールドに置き換える
自動プロパティをプロパティと「フィールド」キーワードに置き換える
明示的な型指定を「var」に置き換える
「field」キーワードを明示的なフィールド宣言に置き換える
null 伝播式を「?:」条件演算子に置き換える
個別の分解宣言を単一の宣言に置き換える
「var」を明示的な型宣言に置き換える
アクセス式に置き換える
'using' ディレクティブを並べ替える
作成した型を指定する
enum メンバー値を指定する
'and' パターンを複数の 'is' 式またはガード式に分割する
属性を個別のセクションに分割する
ネストされたパターンに分割する
リストパターンを複数の連続チェックに分割する
null 伝播式を連続チェックに分割する
'or' パターンを複数の 'is' 式または 'switch' ケースに分割する
再帰パターンを複数の連続チェックに分割する
「var」パターンを個別の変数宣言に分割する
ブロックスコープの名前空間へ
ファイルスコープの名前空間へ
名前付きプロパティパターンへ
"" を使用する
'ConfigureAwait(false)' 呼び出しを使用する
明示的な破棄宣言を使用する
暗黙的な破棄宣言を使用する
'nameof' 式を使ってエンティティ名を取得する
割り当てや .Add() メソッド呼び出しの代わりにオブジェクト / コレクションイニシャライザーを使用する
位置分解パターンを使用する
分解宣言 / パターンで別々の宣言を使用する
文字列補間を使用する
'string.Empty' を使用する
ターゲット型の new を使用する
複数の変数を持つ分解宣言には「var (...)」構文を使用する
TypeScript
型を名前と一致するように別ファイルに移動する
Unity
名前付きアセンブリ定義参照に変換する
VB.NET
文字列補間を使用する
コンテキストアクションのリスト
以下のリンクを使用して、特定の言語で使用できるコンテキストアクションの完全なリストを表示します。
この機能は、次の言語とテクノロジーで サポートされています。
ここで説明する手順と例では、C# の機能の使用について説明します。 他の言語の詳細については、 言語およびフレームワーク セクションの対応するトピックを参照してください。