ReSharper 2026.1 Help

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

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

リファクタリングでは、次の変換を実行できます。

  • 入力パラメーターをパラメーターオブジェクトにカプセル化します。 リファクタリングにより、選択した入力パラメーターに対応するパブリックフィールドまたは自動プロパティを持つ新しいクラスが作成されます。

  • 戻り値と out パラメーターを戻りオブジェクトにカプセル化します。 リファクタリングにより、選択した戻り値コンポーネントと出力パラメーターに対応するパブリックフィールドまたは自動プロパティを持つタプルまたは新しいクラスが作成されます。

  • 戻り値のタプルコンポーネントの一部を out パラメーターに変換し、その逆も同様です。 リファクタリングにより、選択された出力値で戻り値のタプルが拡張され、選択されていない出力値から out パラメーターが作成されます。

  • ref パラメーターの入力部分をパラメーターオブジェクトにカプセル化します。 このリファクタリングにより、 ref パラメーターに対応する未選択の出力値の修飾子が out に置き換えられます。

  • ref パラメーターの出力部分を、戻り値のタプルまたはオブジェクトにカプセル化します。 このリファクタリングにより、 ref パラメーターに対応する未選択の入力値の修飾子が削除されます。

  • パラメーターと戻り値を単一のパラメーターオブジェクトにカプセル化します。 リファクタリングにより、選択した戻り値コンポーネントと out パラメーターに対応する戻り値用の書き込み可能なフィールドまたはプロパティが追加されます。

以下の例は、変換を組み合わせたものです。 out パラメーターをメソッドの戻り値に置き換え、他のパラメーター2つを新しいクラスでラップしています:

class TestClass { public void DrawCircle(Point ctr, float rad, out bool res) { // draw... res = true; } }
class TestClass { public bool DrawCircle(Circle circle) { // draw... . var res = true; return res; } } internal class Circle { public Circle(Point ctr, float rad) { Ctr = ctr; Rad = rad; } public Point Ctr { get; private set; } public float Rad { get; private set; } }

変換メソッドのパラメーター

  1. エディターでメソッドの宣言または使用箇所にキャレットを置くか、 ファイル構造ウィンドウウィンドウでメソッドを選択します。 または、メソッドパラメーターのいずれかにキャレットを置きます。

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

    • Alt+Enter を押して、 パラメーターの変換 を選択します。

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

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

    • メインメニューから ReSharper | リファクタリング | 変換 | パラメーターを変換しています ... を選択します。

    パラメーターの変換 ダイアログが開きます。

  3. 変換するパラメーターを選択します。

  4. 選択された in/out パラメーターに応じて、ReSharper は メソッド受信 または メソッドの戻り値 のセレクターを有効化します。 これらのセレクタを使用して、in/out パラメーターの変換方法を選択します。 パラメーターの新しいクラスを作成する場合は、右側のフィールドにその名前を指定できます。

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

  6. 競合するものが見つからない場合、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 日