ReSharper 2026.2 Help

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

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

適用される変更

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

変更 / シンボル

メソッド

プロパティ

コンストラクター

インデクサー

名前の変更

修正は適用可能です

修正は適用可能です

修正は適用可能です

戻り値の型を変更する

修正は適用可能です

修正は適用可能です

パラメーターの名前と型を変更する

修正は適用可能です

修正は適用可能です

修正は適用可能です

パラメーターの追加または削除

修正は適用可能です

修正は適用可能です

修正は適用可能です

パラメーターの並べ替え

修正は適用可能です

修正は適用可能です

修正は適用可能です

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

  1. エディターでメソッド、プロパティ、コンストラクター、インデクサーの宣言または使用箇所にキャレットを置くか、 ファイル構造ウィンドウウィンドウで選択してください。

  2. 次のいずれかを実行します。

    • Control+F6 を押します。

    • Alt+Enter を押して、 シグネチャーの変更 を選択します。

    • Control+Shift+R を押し、を シグネチャーの変更 を選択します。

    • 右クリックして、コンテキストメニューから リファクタリング | シグネチャーの変更 を選択します。

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

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

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

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

  5. 関数の使用箇所を変更したくない場合は、ReSharper は既存の宣言をそのまま残し、新しい宣言内でそれを呼び出すことで、既存の使用箇所を変更せずに済みます。 これを行うには、 呼び出し セレクターで オーバーロードメソッドによる委譲 を選択します(詳細は 呼び出しを更新せずにシグネチャーを変更を参照してください)。

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

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

  8. パラメーターを追加した場合、ReSharper は、関数呼び出しを修正するいくつかの方法を提案します。呼び出しコードをコンパイル不可のままにする、すべての呼び出しで「null」や特定の値を使用する、またはコールダイアグラムを使って個別の呼び出しごとに値を選択することができます(詳細は コールダイアグラムによる呼び出しの更新(Push/Pull Parameter ツール)を参照)。

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

ReSharper 署名変更ウィザード

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

リファクタリングウィザードの 呼び出し セレクターで オーバーロードメソッドによる委譲 を選択した場合、ReSharper は既存の宣言を残し、新しい宣言内でそれを呼び出すことで、既存の使用箇所を変更せずに済みます。

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

例えば、メソッド public string Foo(string s, int x) の名前やパラメーターの並び順を変更した場合、ReSharper が次のコードを作成します:

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 を押すと、 アクションリストでリファクタリングを見つけることができます:

変更シグネチャーのリファクタリングをインラインで適用する

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

変更シグネチャーのリファクタリングをインラインで適用する

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

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

メソッドシグネチャーリファクタリングをメソッドの使用箇所からインラインで適用する

このクイックフィックスは、リファクタリングを起動し、関数の宣言とそのすべての使用箇所をソリューション全体で更新します。 必要に応じて、ReSharper がそれぞれの呼び出しごとに値を選択できるように コールダイアグラムを表示します

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

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

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

シグネチャーの変更 - コールダイアグラムを使用した呼び出しの更新

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

異なる言語での適用性

この機能は、次の言語とテクノロジーで サポートされています。

言語: C#

言語: VB.NET

言語: C++

言語: ASP.NET

言語: Razor

言語: XAML

言語: Resx

言語: スクリプトの作成

言語: SQL

この機能は C# で利用可能です

この機能は Visual Basic で利用可能です

この機能は C++ で利用可能です

この機能は ASP.NET では使用できません

この機能は Razor では使用できません

機能は XAML では使用できません

機能はリソースファイルでは使用できません

機能はビルドスクリプトファイルでは使用できません

機能は SQL/NoSQL ファイルおよびインジェクションでは利用できません

ここで説明する手順と例では、C# の機能の使用について説明します。 他の言語の詳細については、 言語およびフレームワーク セクションの対応するトピックを参照してください。

2026 年 7 月 16 日