クラスとメンバーのリファクタリング

Visual Studioには、クラス メンバーの再構成とメソッド シグネチャの変更に関するいくつかのリファクタリングが用意されています。 これらのリファクタリングには、[クイック アクションとリファクタリング] メニュー (Ctrl+.

メソッド シグネチャの変更

Applies to: C#, Visual Basic

このリファクタリングを使用すると、メソッドのパラメーターを削除、並べ替え、または追加し、すべての呼び出しサイトを自動的に更新できます。

  1. 変更するメソッドの名前、またはその使用法の 1 つ内にテキスト カーソルを強調表示または配置します。

    • C#:

      強調表示されたコード C# のスクリーンショット。

    • Vb:

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

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

    • キーボード
      • Ctrl キーを押しながら R キーを押し、Ctrl キーを押しながら V キーを押します。 (キーボード ショートカットは、選択したプロファイルによって異なる場合があります)。
      • Ctrl+ キーを押します。クイック アクションとリファクタリング メニューをトリガーし、[プレビュー] ウィンドウ ポップアップから [署名の変更] を選択します。
    • マウス
      • [ 編集] > [リファクタリング] > [パラメーターの削除] を選択します
      • [ 編集] > [リファクタリング] > [パラメーターの並べ替え] を選択します。
      • コードを右クリックし、[ クイック アクションとリファクタリング] メニューを 選択し、[プレビュー] ウィンドウ ポップアップから [署名の変更 ] を選択します。
  3. ポップアップ表示される [ 署名の変更 ] ダイアログで、右側にあるボタンを使用してメソッドシグネチャを変更できます。

    [署名の変更] ダイアログのスクリーンショット。

    ボタン 説明
    上/下 選択したパラメーターを一覧の上下に移動する
    追加 リストに新しいパラメーターを追加する
    Remove 選択したパラメーターを一覧から削除する
    復元 選択したクロスアウト パラメーターを一覧に復元する

    ヒント

    [参照変更のプレビュー] チェック ボックスを使用して、コミットする前に結果を確認します。

  4. [署名の変更] ダイアログで [追加] を選択すると、[パラメーターの追加] ダイアログが開きます。 [ パラメーターの追加] ダイアログでは、型名とパラメーター名を追加できます。 パラメーターを必須にするか、既定値を使用して省略可能にすることもできます。 その後、呼び出しサイトで値を追加し、その値の名前付き引数を選択するか、TODO 変数を導入できます。 TODO 変数は、各エラーにアクセスして各呼び出しサイトを個別に通過し、渡す内容を決定できるように、コードに TODO を配置します。 省略可能なパラメーターの場合は、呼び出しサイトを完全に省略するオプションがあります。

    [パラメーターの追加] ダイアログのスクリーンショット - C#

  5. パラメーターの追加が完了したら、 OK キー を押して変更をプレビューします。

    パラメーターの追加を示す [署名の変更] ダイアログのスクリーンショット。

メンバーをプルアップする

Applies to: C#, Visual Basic

このリファクタリングでは、基本型までメンバーがプルされるため、インターフェイスの他の実装もそれらのメンバーを継承します。

  1. 実装されているインターフェイスの任意のメンバーにカーソルを置きます。

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

    Pull Members up のスクリーンショット。

  3. [Pull Members up to base type]\(基本の種類までメンバーをプルする\) を選択します。

  4. ダイアログで、選択したインターフェイスに追加するメンバーを選択します。

    Pull Member up のスクリーンショット。

  5. OK を選択します。 選択したメンバーがインターフェイスにプルされます。

    Pull Member up が完了したスクリーンショット。

クラスを抽象にする

Applies to: C#, Visual Basic

このリファクタリングでは、抽象ではないクラスに抽象メソッドを記述すると、クラスが自動的に抽象としてマークされます。

  1. 抽象メソッドにキャレットを配置します。

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

  3. Make クラス 'abstract' を選択します。

    クラス抽象の作成のスクリーンショット。

メンバーを静的にする

適用対象: C#

このリファクタリングでは、非静的メンバーを静的に変換し、コードが分離されていることを明確にすることで読みやすさを向上します。

  1. キャレットをメンバー名に置く。

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

    [メンバーを静的にする] のスクリーンショット。

  3. [ 静的にする] を選択します

ローカル関数をメソッドに変換する

適用対象: C#

このリファクタリングでは、ローカル関数をクラス メソッドに変換します。これは、関数を含むメソッドの外部で関数を呼び出す必要がある場合に便利です。

  1. ローカル関数にカーソルを置きます。

    ローカル関数をメソッド コード サンプルに変換するのスクリーンショット。

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

    ローカル関数をメソッド コード修正サンプルに変換するのスクリーンショット。

  3. リファクタリングを受け入れる には、Enter キー を押します。

    ローカル関数をメソッドの結果サンプルに変換するのスクリーンショット。

静的ローカル関数のリファクタリング

適用対象: C#

このセクションでは、ローカル関数を静的にし、変数を静的ローカル関数に明示的に渡すという 2 つの関連機能について説明します。

ローカル関数を静的にする

このリファクタリングにより、ローカル関数が静的になり、関数の外部で定義された変数が関数の宣言と呼び出しに渡されます。 静的ローカル関数は、コードを分離し、1 つのメソッドでのみ呼び出される静的関数を使用してクラスの汚染を防ぐことで、読みやすさを向上させます。

  1. キャレットをローカル関数名に置きます。

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

    ローカル関数を静的にするのスクリーンショット。

  3. [ ローカル関数 'static" を選択します。

静的ローカル関数で変数を明示的に渡す

このクイック アクションでは、ローカルの静的関数に変数を明示的に渡します。ローカル関数を静的にしたいが、その外部で初期化された変数を使用する場合に便利です。

  1. キャレットは、静的ローカル関数で使用される変数に配置します。

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

    静的ローカル関数で変数を明示的に渡すスクリーンショット。

  3. ローカル静的関数で明示的に変数を渡すを選択します