ReSharper 2026.1 Help

「パラメーターの導入」リファクタリング

このリファクタリングは、メソッドの実装から式を呼び出し元へ移動する際に、新しいパラメーターを追加することで実現できます。 式が出現するすべての箇所が新しいパラメーターで置き換えられ、ソリューション内のすべてのメソッド呼び出しは新しい引数で更新されます。

以下の例では、このリファクタリングを使用して、同じ文字列の 2 つの出現箇所をパラメーターに置き換えます。 文字列自体は呼び出し元の引数に移動されます。

abstract class Shape { public void Draw() { try { /*draw*/ } catch (Exception e) { LogError(e); } } static void LogError(Exception ex) { Console.WriteLine("Something has failed..."); File.WriteAllText(@"c:\Error.txt", "Something has failed..." + ex); } }
abstract class Shape { public void Draw() { try { /*draw*/ } catch (Exception e) { LogError(e, "Something has failed..."); } } static void LogError(Exception ex, string message) { Console.WriteLine(message); File.WriteAllText(@"c:\Error.txt", message + ex); } }

パラメーターとして渡したい式がメソッド本体で宣言された参照変数を参照している場合、ReSharper では汎用デリゲートパラメーターを導入し、呼び出し元からラムダ式を渡すことでこれらの参照変数を「ラムダ化」できます。 以下の例では、 "The current time is: " + currentTme 式のリファクタリングを呼び出します。

static void PrintCurrentTime() { var currentTme = DateTime.Now.ToString("h:mm:ss tt"); Console.WriteLine("The current time is: " + currentTme); } private void Test1() { PrintCurrentTime(); }
static void PrintCurrentTime(Func<string, string> output) { var currentTme = DateTime.Now.ToString("h:mm:ss tt"); Console.WriteLine(output(currentTme)); } private void Test1() { PrintCurrentTime(currentTme => "The current time is: " + currentTme); }

選択した式のパラメーターを導入する

  1. エディターで、メソッドまたはコンストラクター内の式を選択します。

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

    • Control+Alt+P を押します。

    • Control+Shift+R を押し、を パラメーターの導入 を選択します。

    • 右クリックして、コンテキストメニューから リファクタリング | パラメーターの導入 を選択します。

    • メインメニューから ReSharper | リファクタリング | パラメーターの導入… を選択します。

  3. 選択した式が複数見つかった場合、ReSharper でリファクタリングをすべての出現箇所に適用するか、現在の箇所のみに適用するかを選択できます。

  4. 表示される パラメーターの導入 ダイアログで、新しいパラメーターの名前を入力します。

  5. 選択した式が定数であるか値型である場合は、その式を導入されたパラメーターのデフォルト値として使用できます。 そうするには、 デフォルトにする チェックボックスを選択します。

  6. 選択した式が他の変数に依存する場合、これらの変数は enlambda する変数を選択する セクションに表示されます。 ジェネリクスデリゲートで使用する変数を選択します(この場合はパラメーターとして追加されます)。

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

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

ReSharper: 「パラメーターの導入」リファクタリング

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

言語: C#

言語: VB.NET

言語: C++

言語: ASP.NET

言語: Razor

言語: XAML

言語: Resx

言語: スクリプトの作成

言語: SQL

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

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

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

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

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

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

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

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

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

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

2026 年 6 月 12 日