JetBrains Rider 2020.2 ヘルプ

シグネチャーの変更リファクタリング

Ctrl+F6

このリファクタリングは、メソッド、コンストラクター、プロパティ、およびインデクサーのシグネチャーに加えることができるいくつかの変更を組み合わせたものです。JetBrains Rider は、宣言内のシグネチャーを変更するとともに、現在のソリューションで変更されたシンボルのすべての使用箇所、ベースシンボル、実装、およびオーバーライドを検出して更新します。

適用される変更

このリファクタリングを使用すると、次の変更を行うことができます。

変更 / シンボル メソッド プロパティ コンストラクター インデクサー
名前の変更 Modification is applicableModification is applicableModification is applicable
戻り値の型を変更する Modification is applicableModification is applicable
パラメーターの名前とタイプを変更する Modification is applicableModification is applicableModification is applicable
パラメーターの追加または削除 Modification is applicableModification is applicableModification is applicable
パラメーターの並べ替え Modification is applicableModification is applicableModification is applicable

コマンドでリファクタリングを呼び出す

  1. 宣言にキャレットを配置するか、メソッド、プロパティ、コンストラクター、またはインデクサをエディターで使用するか、構造ウィンドウで選択します。

  2. 以下のいずれか 1 つを実行します :

    • Ctrl+F6 を押します。

    • Ctrl+Alt+Shift+T を押し、次にシグネチャーの変更を選択します。

    • メインメニューのリファクタリング | シグネチャーの変更を選択します。

    シグネチャーの変更ダイアログが開きます。

  3. 名前フィールドにシンボルの新しい名前を入力します。必要に応じて、戻りの型フィールドでメソッドの戻り値の型を変更します。

  4. パラメーター領域では、既存のパラメーターのタイプ、名前、修飾子、およびデフォルト値を編集します。必要に応じて、追加および除去ボタンを使用してパラメーターを作成または削除します。上へ移動下へ移動をクリックしてパラメーターを並べ替えます。

  5. 関数の使用箇所を変更したくない場合、JetBrains Rider は既存の宣言を残して新しい宣言内で呼び出すことができるため、既存の使用箇所を変更せずに残すことができます。そのためには、オーバーロードメソッドによる委譲を選択します(詳細については以下を参照)。

  6. プレビューフィールドで新しい署名を確認します。

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

  8. パラメーターを追加した場合、JetBrains Rider は関数の呼び出しを修正するいくつかの方法を提案します。呼び出しのコードをコンパイル不可のままにする、すべての呼び出しに 'null' または特定の値を使う、またはそれぞれの特定の呼び出しを個別に(詳細は下記を参照

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

JetBrains Rider Change Signature wizard

呼び出しを更新せずにシグネチャーを変更する

リファクタリングウィザードでオーバーロードメソッドによる委譲を選択した場合、JetBrains Rider は既存の宣言を残して新しい宣言内で呼び出すため、既存の用途は変更されません。

継承階層から関数を変更する場合、このオプションは使用できないことに注意してください。

例:メソッド public string Foo(string s, int x) の名前と並べ替えられたパラメーターを変更した場合、JetBrains Rider は次のコードを作成します:

public string Foo(string s, int x) { return String.Format("'{0}': {1} times", s, x); } public void Test() { Foo("test", 10); }
public string Bar(int x, string s) { return String.Format("'{0}': {1} times", s, x); } public void Test() { Bar(10, "test"); }
public string Foo(string s, int x) { return String.Format("'{0}': {1} times", s, x); } public void Test() { Foo("test", 10); }
public string Foo(string s, int x) { return Bar(x, s); } public string Bar(int x, string s) { return String.Format("'{0}': {1} times", s, x); } public void Test() { Foo("test", 10); }

リファクタリングをインプレースで実行する

関数のシグネチャーを変更するには、エディターでその宣言権を変更し、クイックフィックスを適用してソリューション全体のリファクタリングを呼び出します。

たとえば、メソッドのパラメーターを並べ替えると、メソッドシグネチャーの周囲に灰色の境界線が表示され、リファクタリングが利用可能であることを通知します。 Alt+Enter を押すと、アクションリストでリファクタリングを見つけることができます。

Applying the Change Signature refactoring inline

クイックフィックスを適用すると、メソッドシグネチャーの変更がダイアログに表示されます。

Applying the Change Signature refactoring inline

次へをクリックすると、ソリューション全体に変更を適用できます。

また、関数の呼び出しのいずれかに新しい引数を 1 つ追加するときに、シグネチャーの変更リファクタリングを適用することもできます。この場合、JetBrains Rider は誤った呼び出しを検出し、強調表示し、対応するクイックフィックスを提案します。

Applying the Change Signature refactoring inline from a method usage
このクイックフィックスは、リファクタリングを起動し、関数の宣言とそのすべての使用箇所をソリューション全体で更新します。必要に応じて、JetBrains Rider はそれぞれの特定の呼び出しの値を個別に選ぶために呼び出し図を表示します

コールダイアグラムによるコールの更新 (プッシュ / プルパラメーターツール)

新しいパラメーターが追加されるように関数シグニチャを変更する場合、JetBrains Rider は関数呼び出しを更新するいくつかの方法を提供します。すべてのコールに 'null' または定数値を使用することに加えて、コールの視覚的表現を使用して個々のコールを更新することができます。

ウィザードを使用してリファクタリングを実行する場合は、ウィザードの最後のページでコールツリーで解決するを選択し、次へをクリックします。更新された関数呼び出しのクイックフィックスからリファクタリングを実行すると、変更された関数のすべての呼び出しを含むツールウィンドウが自動的に開きます。

Change signature - updating calls with call diagram

このビューでは、影響を受けたコールを確認して、クリックしてエディターでそれらのコールを見つけることができます。コールごとに、新しく追加したパラメーターの値を取得する方法を選択するか、ユーザーの編集を選択して手動でコールを編集します。

最終更新日 :

関連ページ:

名前変更リファクタリング

このリファクタリングにより、ソリューション内の任意のシンボルまたはプロジェクトの名前を変更できます。シンボルへの参照および使用箇所はすべて自動的に更新されます。さまざまな C# エンティティにリファクタリングを使用する :これは、このリファクタリングで名前を変更できるエンティティのリストです。プロジ...

変換パラメーターのリファクタリング

このリファクタリングは、パラメーターを変換することにより、メソッドシグネチャーをすばやく変更できます。たとえば、パラメーターを削除したり、タプルまたは新しいクラスにパラメーターをラップしたりします。 — そして、ソリューション内のメソッドのすべての使用箇所を自動的に更新します。JetBrains R...

構造ウィンドウ

表示 | ツールウィンドウ | 構造JetBrains Rider では、構造ウィンドウを使用して現在のドキュメントの構造をナビゲートできるため、大きなファイルでのナビゲーションが大幅に簡素化されます。ウィンドウはエディターと同期しています。別のエディタータブに切り替えると、ウィンドウに対応...

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

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

コードの課題のクイックフィックス

JetBrains Rider を使用すると、設計時に検出されたほとんどのコード課題を即座に修復できます。強調表示されたコードの課題で を押して、課題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。クイックフィックスを適用する :クイックフィックス...

コード要素の並べ替え

コード | 文を上/下/左/右に移動するCtrl+Shift+Alt+Up/Down/Left/Right再配置コマンドのデフォルトのショートカットは、リモートデスクトップでは機能しません。回避策は、JetBrains Rider設定 のキーマップページでこれらのコマンドにカスタムショートカットを割...