シグネチャーの変更リファクタリング
このリファクタリングは、メソッド、コンストラクター、プロパティ、インデクサーのシグネチャーに加えることができるいくつかの変更を組み合わせたものです。 宣言内のシグネチャーを変更すると、ReSharper は現在のソリューション内で変更されたシンボルのすべての使用箇所、基底シンボル、実装、オーバーライドを検出して更新します。
適用される変更
このリファクタリングを使用すると、次の変更を行うことができます。
変更 / シンボル | メソッド | プロパティ | コンストラクター | インデクサー |
|---|---|---|---|---|
名前の変更 | ||||
戻り値の型を変更する | ||||
パラメーターの名前と型を変更する | ||||
パラメーターの追加または削除 | ||||
パラメーターの並べ替え |
コマンドでリファクタリングを呼び出す
エディターでメソッド、プロパティ、コンストラクター、インデクサーの宣言または使用箇所にキャレットを置くか、 ファイル構造ウィンドウウィンドウで選択してください。
次のいずれかを実行します。
Control+F6 を押します。
Alt+Enter を押して、 シグネチャーの変更 を選択します。
Control+Shift+R を押し、を シグネチャーの変更 を選択します。
右クリックして、コンテキストメニューから リファクタリング | シグネチャーの変更 を選択します。
メインメニューから を選択します。
シグネチャーの変更 ダイアログが開きます。
名前の指定 フィールドにシンボルの新しい名前を入力します。 必要に応じて、 戻り値の型 フィールドでメソッドの戻り値の型を変更します。
パラメーター 領域では、既存のパラメーターの型、名前、修飾子、デフォルト値を編集します。 必要に応じて、 追加 および 除去する ボタンを使用してパラメーターを作成または削除します。 上へ移動 と 下へ移動 をクリックしてパラメーターを並べ替えます。
関数の使用箇所を変更したくない場合は、ReSharper は既存の宣言をそのまま残し、新しい宣言内でそれを呼び出すことで、既存の使用箇所を変更せずに済みます。 これを行うには、 呼び出し セレクターで オーバーロードメソッドによる委譲 を選択します(詳細は 呼び出しを更新せずにシグネチャーを変更を参照してください)。
プレビューフィールドで新しい署名を確認します。
リファクタリングを適用するには、 次へ をクリックします。
パラメーターを追加した場合、ReSharper は、関数呼び出しを修正するいくつかの方法を提案します。呼び出しコードをコンパイル不可のままにする、すべての呼び出しで「null」や特定の値を使用する、またはコールダイアグラムを使って個別の呼び出しごとに値を選択することができます(詳細は コールダイアグラムによる呼び出しの更新(Push/Pull Parameter ツール)を参照)。
競合するものが見つからない場合、ReSharper はすぐにリファクタリングを実行します。 それ以外の場合は、 競合を解決するように求められます。

呼び出しを更新せずにシグネチャーを変更する
リファクタリングウィザードの 呼び出し セレクターで オーバーロードメソッドによる委譲 を選択した場合、ReSharper は既存の宣言を残し、新しい宣言内でそれを呼び出すことで、既存の使用箇所を変更せずに済みます。
継承階層から関数を変更する場合、このオプションは使用できないことに注意してください。
例えば、メソッド public string Foo(string s, int x) の名前やパラメーターの並び順を変更した場合、ReSharper が次のコードを作成します:
リファクタリングをインプレースで実行する
関数のシグネチャーを変更するには、エディターでその宣言権を変更し、 クイックフィックスを適用してソリューション全体のリファクタリングを呼び出します。
たとえば、メソッドのパラメーターを並べ替えると、メソッドシグネチャーの周囲に灰色の境界線が表示され、リファクタリングが利用可能であることを通知します。 Alt+Enter を押すと、 アクションリストでリファクタリングを見つけることができます:

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

次へ をクリックすると、ソリューション全体に変更を適用できます。
また、関数の呼び出しのいずれかに新しい引数を 1 つ追加するときに、シグネチャーの変更リファクタリングを適用することもできます。 この場合、ReSharper が誤った呼び出しを検出し、ハイライトして、対応するクイックフィックスを提案します:

このクイックフィックスは、リファクタリングを起動し、関数の宣言とそのすべての使用箇所をソリューション全体で更新します。 必要に応じて、ReSharper がそれぞれの呼び出しごとに値を選択できるように コールダイアグラムを表示します
コールダイアグラムによるコールの更新 (プッシュ / プルパラメーターツール)
関数シグネチャーを変更して新しいパラメーターを追加する場合、ReSharper は関数呼び出しを更新するいくつかの方法を提供します。 すべてのコールに 'null' または定数値を使用することに加えて、コールの視覚的表現を使用して個々のコールを更新することができます。
ウィザードを使用してリファクタリングを実行する場合は、ウィザードの最後のページで コールツリーで解決する を選択し、 次へ をクリックします。 更新された関数呼び出しのクイックフィックスからリファクタリングを実行すると、変更された関数のすべての呼び出しを含むツールウィンドウが自動的に開きます。

このビューでは、影響を受けたコールを確認して、クリックしてエディターでそれらのコールを見つけることができます。 コールごとに、新しく追加したパラメーターの値を取得する方法を選択するか、 ユーザー編集 を選択して手動でコールを編集します。
異なる言語での適用性
この機能は、次の言語とテクノロジーで サポートされています。
ここで説明する手順と例では、C# の機能の使用について説明します。 他の言語の詳細については、 言語およびフレームワーク セクションの対応するトピックを参照してください。