次の方法で共有


抽出とインラインリファクタリング

Visual Studioには、コードを新しいコンストラクトに抽出したり、コードベースを簡略化するためのコードのインライン化を行ったりするためのリファクタリングがいくつか用意されています。 これらのリファクタリングには、[クイック アクションとリファクタリング] メニュー (Ctrl+.

抽出メソッド

Applies to: C#, Visual Basic

このリファクタリングでは、コードのフラグメントを独自のメソッドに変換し、同じコードを複数の場所から呼び出す必要がある場合の重複を減らします。

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

    • C#:

      Program クラスの C# コードのスクリーンショット。そのクラスの Main 関数では、コード行が強調表示されています。

    • Visual Basic:

       Main Sub のVisual Basicコードのスクリーンショット。その Sub では、コード行が強調表示されています。

  2. 次に、次のいずれかの操作を行います。

    • キーボード
      • Ctrl キーを押しながら R キーを押し、Ctrl + M キーを押します。 (キーボード ショートカットは、選択したプロファイルによって異なる場合があります)。
      • Ctrl+ キーを押します。クイック アクションとリファクタリング メニューをトリガーし、[プレビュー] ウィンドウ ポップアップから [メソッドの抽出] を選択します。
    • マウス
      • [ Edit > Refactor > Extract メソッドを選択します。
      • コードを右クリックし、[抽出>抽出メソッド>リファクタリング] を選択します。
      • コードを右クリックし、[ クイック アクションとリファクタリング] メニューを 選択し、[プレビュー] ウィンドウ ポップアップから [メソッドの抽出 ] を選択します。

    メソッドはすぐに作成されます。 新しい名前を入力して、メソッドの名前を変更できるようになりました。

    ヒント

    IDE の右上に表示される [名前の変更] ボックスのチェック ボックスを使用して、コメントやその他の文字列を更新して、この新しい名前を使用したり、保存前に変更をプレビューしたりすることもできます。

    • C#:

      Program クラスの C# コードのスクリーンショット。メソッド名が強調表示され、[名前の変更] ポップアップ ウィンドウが開きます。

    • Visual Basic:

      Main Sub のVisual Basicコードのスクリーンショット。メソッド名が強調表示され、[名前の変更] ポップアップ ウィンドウが open.

  3. 変更に問題がなければ、[ 適用 ] ボタンを選択するか 、Enter キーを押すと変更がコミットされます。

ローカル関数の抽出

適用対象: C#

このリファクタリングにより、既存のメソッドからコードのフラグメントがローカル関数に変換されます。抽出されたコードを同じメソッド内でのみ呼び出す必要がある場合に便利です。

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

  2. Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。

  3. [ ローカル関数の抽出] を選択します。

    行が強調表示されたVisual Studio コード ウィンドウのスクリーンショット。[クイック アクションとリファクタリング] メニューが開き、[ローカル関数の抽出] が選択されています。

基本クラスの抽出

Applies to: C#, Visual Basic

このリファクタリングでは、選択したクラスから新しい基底クラスにメンバーを抽出します。継承によってクラス間でメンバーを共有する場合に便利です。

  1. クラス名または強調表示されたメンバーにキャレットを配置します。

  2. Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。

  3. メンバーを新しい基底クラスにまとめるを選択します。

    [基本クラスの抽出] ダイアログのスクリーンショット。

新しい [ 基本クラスの抽出 ] ダイアログボックスが開き、基底クラスの名前と配置場所を指定できます。 新しい基底クラスに転送するメンバーを選択し、[抽象クラスにする] 列のチェック ボックスをオンにして、メンバーを抽象にすることができます。

インターフェイスの抽出

Applies to: C#, Visual Basic

このリファクタリングでは、クラス、構造体、またはインターフェイスの既存のメンバーを使用してインターフェイスを作成し、他の型が共通のシグネチャを共有できるようにします。

  1. クラス名にカーソルを置く。

    • C#:

      抽出インターフェイス - C# の強調表示されたコードのスクリーンショット。

    • Visual Basic:

      強調表示されたコードのスクリーンショット - Visual Basic.

  2. 次に、次のいずれかのアクションを実行します。

    • キーボード
      • Ctrl キーを押しながら R キーを押し、Ctrl + I キーを押します。 (キーボード ショートカットは、選択したプロファイルによって異なる場合があります)。
      • Ctrl キー+押します。クイック アクションとリファクタリング メニューをトリガーし、[プレビュー] ウィンドウ ポップアップから [インターフェイスの抽出] を選択します。
    • マウス
      • [ Edit > Refactor > Extract Interface] を選択します。
      • クラスの名前を右クリックし、[ クイック アクションとリファクタリング] メニューを 選択し、[プレビュー] ウィンドウ ポップアップから [インターフェイスの抽出 ] を選択します。
  3. ポップアップ表示される [ インターフェイスの抽出 ] ダイアログ ボックスで、次の情報を入力します。

    [インターフェイスの抽出] のスクリーンショット。

    フィールド 説明
    新しいインターフェイス名 作成するインターフェイスの名前。 既定の名前は IClassName になりますClassName は、上で選択したクラスの名前です。
    新しいファイル名 インターフェイスを含む生成されたファイルの名前。 インターフェイス名と同様に、この名前は既定で IClassName になり、 ClassName は上で選択したクラスの名前になります。 [ 現在のファイルに追加] オプションを選択することもできます。
    フォーム インターフェイスにパブリック メンバーを選択する インターフェイスに抽出する項目。 必要な数を選択できます。
  4. OK を選択します。

    インターフェイスは、指定された名前のファイルに作成されます。 さらに、選択したクラスがそのインターフェイスを実装します。

    • C#:

      結果のクラス - C# のスクリーンショット。

      結果のインターフェイス - C# のスクリーンショット。

    • Visual Basic:

      結果クラスのスクリーンショット - Visual Basic.

      結果のインターフェイスのスクリーンショット - Visual Basic.

インラインメソッド

Applies to: C#, Visual Basic

このリファクタリングにより、1 つのステートメント本体内の静的メソッド、インスタンス メソッド、または拡張メソッドの使用法が実装に置き換えられ、元のメソッド宣言を削除するオプションに置き換えられます。

  1. メソッドの使用方法にキャレットを置く。

  2. Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。

  3. 次のいずれかのオプションを選択します。

    <QualifiedMethodName>削除するには、[インライン ] を選択します。

    'インライン 'CreateWidget()' の変換が選択され、C# コードの変更が表示されたVisual Studioの [クイック アクションとリファクタリング] メニューのスクリーンショット

    [<QualifiedMethodName>メソッド宣言を保持するためにを保持します。

    変換 'Inline and keep 'CreateWidget()' が選択され、C# コードの変更が表示されたVisual Studioの [クイック アクションとリファクタリング] メニューのスクリーンショット。

インライン一時変数

Applies to: C#, Visual Basic

このリファクタリングでは、一時変数が削除され、代わりにその値に置き換えられ、一時変数によってコードの理解が困難になったときにコードが簡略化されます。

  1. インライン化する一時変数の中にテキスト カーソルを強調表示または配置します。

    • C#:

      インライン一時変数 - C# の強調表示されたコードのスクリーンショット。

    • Visual Basic:

      強調表示されたコードのスクリーンショット - Visual Basic.

  2. 次に、次のいずれかの操作を行います。

    • キーボード
      • Ctrl+. キーを押して、[クイック アクションとリファクタリング] メニューをトリガーします。
    • マウス
      • コードを右クリックし、[ クイック アクションとリファクタリング] メニューを 選択します。
  3. [プレビュー] ウィンドウ ポップアップから [ インライン一時変数 ] を選択します。

    変数が削除され、その使用法が変数の値に置き換えられます。

    • C#:

      インライン結果 - C# のスクリーンショット。

    • Visual Basic:

      インライン結果のスクリーンショット - Visual Basic.