メソッドの抽出リファクタリング
このリファクタリングでは、選択したコードフラグメントに基づいて新しいメソッドまたはローカル関数を作成できます。 ReSharper は、選択したステートメントを分析し、メソッドのパラメーターに変換できる変数や戻り値となる変数を検出します。
次の例を考えてみましょう。 メソッド PrintReversed() は実際に 2 つの処理を行います。文字列を反転し、それを出力します。 反転ロジック(Console.WriteLine(reversed); を除くすべてのステートメント)を選択し、このリファクタリングでそのロジックを新しい ReverseStr() メソッドに移動できます。
選択したステートメントからメソッドを抽出する
エディターで、メソッドに変換する文を 1 つ以上選択します。
次のいずれかを実行します。
Control+Alt+M を押します。
Alt+Enter を押して、 メソッドの抽出 を選択します。
Control+Shift+R を押し、を メソッドの抽出 を選択します。
開いたポップアップで、 メソッドの抽出 を選択します。
抽出方法を設定できるダイアログが表示されます。

名前の指定 フィールドに新しいメソッドの名前を入力します。
ReSharper が リターン リスト内で検出した可能な戻り値の式を選択してください。 他の式が戻り値として検出される可能性があります。 これらは
outパラメーターとしてリストされます。パラメーター 領域の対応するチェックボックスを使用してパラメーターを含めるか除外します。 リストからパラメーターを除外すると、必要に応じて同じ名前と型のローカル変数が作成されます。
パラメーターの順序を変更するには、リストでパラメーターを選択し、 上へ移動 および 上へ移動 ボタンを使用します。
静的にする および / または 仮想化する を選択して、対応する修飾子をメソッドに追加します。
必要に応じて、 可視性 リスト内のメソッドの表示 / 非表示を変更します。
プレビュー フィールドで結果メソッドの署名と本体を確認します。
リファクタリングを適用するには、 次へ をクリックします。
競合するものが見つからない場合、ReSharper はすぐにリファクタリングを実行します。 それ以外の場合は、 競合を解決するように求められます。
選択したステートメントからローカル関数を抽出する
エディターで、ローカル関数に変換する 1 つ以上のステートメントを選択します。
次のいずれかを実行します。
Control+Alt+M を押します。
Alt+Enter を押して、 メソッドの抽出 を選択します。
Control+Shift+R を押し、を メソッドの抽出 を選択します。
開いたポップアップで、 ローカル関数の抽出 を選択します。
ReSharper は、新しい関数のシグネチャーと場所のプレビューを表示します。

アップ キーと ダウン キーを使って関数の希望する場所を変更し、 Enter を押します。
抽出されたローカル関数を構成できるダイアログが表示されます。

新しいローカル関数の名前を 名前の指定 フィールドに入力します。
ReSharper が リターン リスト内で検出した可能な戻り値の式を選択してください。 他の式が戻り値として検出される可能性があります。 これらは
outパラメーターとしてリストされます。パラメーター 領域の対応するチェックボックスを使用してパラメーターを含めるか除外します。 リストからパラメーターを除外すると、必要に応じて同じ名前と型のローカル変数が作成されます。
パラメーターの順序を変更するには、リストでパラメーターを選択し、 上へ移動 および 上へ移動 ボタンを使用します。
プレビュー フィールドで、結果として得られるローカル関数の署名と本体を確認します。
リファクタリングを適用するには、 次へ をクリックします。
競合するものが見つからない場合、ReSharper はすぐにリファクタリングを実行します。 それ以外の場合は、 競合を解決するように求められます。
この機能は、次の言語とテクノロジーで サポートされています。
ここで説明する手順と例では、C# の機能の使用について説明します。 他の言語の詳細については、 言語およびフレームワーク セクションの対応するトピックを参照してください。