JetBrains Rider 2020.2ヘルプ

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

リファクタリング | 抽出/紹介 | メソッドの抽出...
Ctrl+Alt+M

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

次の例を考えてみましょう。

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. 以下のいずれか 1 つを実行します:

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

    • Ctrl+Alt+Shift+T を押し、次にメソッドの抽出を選択します。

    • メインメニューのリファクタリング | メソッドの抽出を選択します。

  3. 選択したステートメントの抽出方法を選択する: メソッドとして、またはローカル関数として:

    JetBrains Rider. Extract Method refactoring: choosing between method and local function

  4. ローカル関数を作成する場合は、現在の関数内にローカル関数を配置する場所を指定し、次へをクリックします。

  5. 新しい関数の名前を名前フィールドに入力します。

  6. リターンリストで、JetBrains Riderが可能な関数戻り値として検出した式のいずれかを選択します。可能な戻り値として他の式が検出される場合があります。それらは出力パラメータとしてリストされています。

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

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

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

  10. メソッドの作成を選択した場合、アクセス権リストでアクセス権を指定することもできます。

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

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

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

JetBrains Rider. Extract Method refactoring
最終更新日:

関連ページ:

メソッド・リファクタリングのインライン化

このリファクタリングは、静的メソッド、インスタンスメソッド、および拡張メソッドの使用をその本体に置き換え、オプションで元のメソッド宣言を削除できます。このリファクタリングをバッキングフィールドのあるプロパティに適用することもできます。この場合、読み取り使用箇所はgetterボディで置き換えられ、書き...

競合を解決するリファクタリング

すべてのJetBrains Riderのリファクタリングはソリューション全体に適用されるため、多くのファイルが影響を受ける可能性があり、一部の変更は既存のコードと競合する可能性があります。競合が発生した場合、JetBrains Riderはそれらを検出し、リファクタリングウィザードの最後のページに競...

インターフェースリファクタリングの抽出

このリファクタリングは、選択したタイプに基づいて新しいインターフェースを作成できます。JetBrains Riderは、新しいインターフェースに転送するメンバーを選択することを提案しています。抽出後、元の型は新しいインターフェースを実装するように更新されます。現在のタイプがすでにインターフェースを実...

「スーパークラスの抽出」リファクタリング

このリファクタリングにより、選択したクラスから特定のメンバーを新しい基本クラスに抽出できます。元のクラスは、作成された基本クラスを拡張します。現在の型がすでにインターフェースを実装している場合、これらのインターフェースを新しい基本クラスに抽出することもできます。抽象クラスを作成する場合は、抽出された...