関数を抽出する

機能: コードのフラグメントを独自の関数に変換します。

条件: 関数に、別の関数から呼び出される必要がある既存のコードのフラグメントがあるとき。

理由: コードのコピー/貼り付けはできるが、重複につながるおそれがあるため。 他の関数から呼び出すことができる独自の関数に、そのフラグメントをリファクタリングすることをお勧めします。

方法:

  1. 抽出するコードを強調表示します。

    抽出に先立って強調表示されているコード double area = M_PI * readious * radious; を示すスクリーンショット。

  2. 次に、以下のいずれかを実行します。

    • [キーボード]
      • Ctrl + R キーを押し、次に Ctrl + M キーを押します。 (キーボード ショートカットは、選択したプロファイルに応じて異なる場合があります。)
      • Ctrl+. を押し、[クイック アクションとリファクタリング] メニューをトリガーし、コンテキスト メニューから [Extract 関数 (試験段階)] を選びます。
    • マウス
      • [編集] > [リファクター] > [Extract 関数 (試験段階)] の順に選びます。
      • コードを右クリックして [クイック アクションとリファクタリング] メニューを選び、コンテキスト メニューから [Extract 関数 (試験段階)] を選びます。
      • 左の余白に表示されている電球。アイコンをクリックし、コンテキスト メニューから [Extract 関数 (試験段階)] を選びます。
  3. [関数/メソッドの抽出 (試験的)] ウィンドウで、新しい関数名を入力し、コードを配置する場所を選んで、[OK] ボタンをクリックします。

    関数名を入力し、現在の関数の上または下のどちらに作成するかを選ぶ、関数抽出ダイアログのスクリーンショット。

  4. 指定した場所に新しい関数が作成され、関数のプロトタイプが対応するヘッダー ファイルで宣言されて、元のコードはその関数の呼び出しに変更されます。

    抽出されたコードを含む、作成された関数のスクリーンショット。定義は void CalculateArea(double radius) です。