ReSharper 2026.1 Help

メソッドの抽出リファクタリング

このリファクタリングでは、選択したコードフラグメントに基づいて新しいメソッドまたはローカル関数を作成できます。 ReSharper は、選択したステートメントを分析し、メソッドのパラメーターに変換できる変数や戻り値となる変数を検出します。

次の例を考えてみましょう。 メソッド PrintReversed() は実際に 2 つの処理を行います。文字列を反転し、それを出力します。 反転ロジック(Console.WriteLine(reversed); を除くすべてのステートメント)を選択し、このリファクタリングでそのロジックを新しい ReverseStr() メソッドに移動できます。

static void PrintReversed(string input) { var chars = input.ToCharArray(); Array.Reverse(chars); var reversed = new string(chars); Console.WriteLine(reversed); }
static void PrintReversed(string input) { var reversed = ReverseStr(input); Console.WriteLine(reversed); } private static string ReverseStr(string input) { var chars = input.ToCharArray(); Array.Reverse(chars); var reversed = new string(chars); return reversed; }

選択したステートメントからメソッドを抽出する

  1. エディターで、メソッドに変換する文を 1 つ以上選択します。

  2. 次のいずれかを実行します。

    • Control+Alt+M を押します。

    • Alt+Enter を押して、 メソッドの抽出 を選択します。

    • Control+Shift+R を押し、を メソッドの抽出 を選択します。

  3. 開いたポップアップで、 メソッドの抽出 を選択します。

  4. 抽出方法を設定できるダイアログが表示されます。

    ReSharper。 メソッドの抽出リファクタリング
  5. 名前の指定 フィールドに新しいメソッドの名前を入力します。

  6. ReSharper が リターン リスト内で検出した可能な戻り値の式を選択してください。 他の式が戻り値として検出される可能性があります。 これらは out パラメーターとしてリストされます。

  7. パラメーター 領域の対応するチェックボックスを使用してパラメーターを含めるか除外します。 リストからパラメーターを除外すると、必要に応じて同じ名前と型のローカル変数が作成されます。

  8. パラメーターの順序を変更するには、リストでパラメーターを選択し、 上へ移動 および 上へ移動 ボタンを使用します。

  9. 静的にする および / または 仮想化する を選択して、対応する修飾子をメソッドに追加します。

  10. 必要に応じて、 可視性 リスト内のメソッドの表示 / 非表示を変更します。

  11. プレビュー フィールドで結果メソッドの署名と本体を確認します。

  12. リファクタリングを適用するには、 次へ をクリックします。

  13. 競合するものが見つからない場合、ReSharper はすぐにリファクタリングを実行します。 それ以外の場合は、 競合を解決するように求められます。

選択したステートメントからローカル関数を抽出する

  1. エディターで、ローカル関数に変換する 1 つ以上のステートメントを選択します。

  2. 次のいずれかを実行します。

    • Control+Alt+M を押します。

    • Alt+Enter を押して、 メソッドの抽出 を選択します。

    • Control+Shift+R を押し、を メソッドの抽出 を選択します。

  3. 開いたポップアップで、 ローカル関数の抽出 を選択します。

  4. ReSharper は、新しい関数のシグネチャーと場所のプレビューを表示します。

    ReSharper: ローカル関数の抽出リファクタリング

    アップ​​ キーと ダウン​​ キーを使って関数の希望する場所を変更し、 Enter を押します。

  5. 抽出されたローカル関数を構成できるダイアログが表示されます。

    ReSharper。 メソッドの抽出リファクタリング
  6. 新しいローカル関数の名前を 名前の指定 フィールドに入力します。

  7. ReSharper が リターン リスト内で検出した可能な戻り値の式を選択してください。 他の式が戻り値として検出される可能性があります。 これらは out パラメーターとしてリストされます。

  8. パラメーター 領域の対応するチェックボックスを使用してパラメーターを含めるか除外します。 リストからパラメーターを除外すると、必要に応じて同じ名前と型のローカル変数が作成されます。

  9. パラメーターの順序を変更するには、リストでパラメーターを選択し、 上へ移動 および 上へ移動 ボタンを使用します。

  10. プレビュー フィールドで、結果として得られるローカル関数の署名と本体を確認します。

  11. リファクタリングを適用するには、 次へ をクリックします。

  12. 競合するものが見つからない場合、ReSharper はすぐにリファクタリングを実行します。 それ以外の場合は、 競合を解決するように求められます。

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

言語: C#

言語: VB.NET

言語: C++

言語: ASP.NET

言語: Razor

言語: XAML

言語: Resx

言語: スクリプトの作成

言語: SQL

この機能は C# で利用可能です

この機能は Visual Basic で利用可能です

C++ での抽出方法

この機能は ASP.NET では使用できません

この機能は Razor では使用できません

機能は XAML では使用できません

機能はリソースファイルでは使用できません

機能はビルドスクリプトファイルでは使用できません

機能は SQL/NoSQL ファイルおよびインジェクションでは利用できません

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

2026 年 6 月 12 日