ReSharper 2025.2 ヘルプ

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

このリファクタリングは、パラメーターを変換することにより、メソッドシグネチャーをすばやく変更できます。たとえば、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. 以下のいずれか 1 つを実行します:

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

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

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

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

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

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

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

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

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

ReSharper. Transforming method's parameters

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

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

2025 年 2 月 06 日

関連ページ:

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

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

構造別にファイルを移動する

ファイル構造ウィンドウ:ReSharper では、ファイル構造ウィンドウを使用して現在のドキュメントの構造を移動でき、大きなファイルでのナビゲーションが大幅に簡素化されます。ウィンドウはエディターと同期されます。別のエディタータブに切り替えると、ウィンドウには対応するファイルの構造が表示されます。ファイル構造ウィンドウを開いて使用するを押すか、メインメニューからを選択します。あるいは、を押して、ポップアップでコマンド名を入力して、そこで選択することもできます。現在のドキュメントの内容はツリー

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

ReSharper のすべてのリファクタリングはソリューション全体に適用されるため、多くのファイルが影響を受ける可能性があり、一部の変更は既存のコードと競合する可能性があります。競合がある場合、ReSharper はそれらを検出し、リファクタリングウィザードの最後のページに競合のリストを表示します。例: 安全な削除リファクタリングをメソッドに適用するときに表示されるいくつかの競合を次に示します。競合には 2 つの型があります。コンパイルを中断することなく削除できる使用箇所は、アイコンでマークされて...

さまざまな言語の ReSharper 機能

以下の表は、ReSharper の各機能がどの言語 / テクノロジーでサポートされているかを説明しています。言語固有の機能のみを記載しており、プロジェクト依存関係ダイアグラム、名前空間の調整リファクタリング、スタックトレースエクスプローラー、最近使用したファイルの表示など、プロジェクト / ソリューションスコープに関する多くの機能は含まれていません。コード解析:コードインスペクション

ASP.NET MVC 特有の機能

ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト:ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト: コード補完:文字列リテラルでアクションとコントローラーを参照するための専用コード補完: ナビゲーションと検索:さまざまなナビゲーション機能がアクションとコントローラーでも機能します。コード生成:使用箇所から新しいコントローラーとアクションを作成する:20...

言語による ReSharper: MSBuild

MSBuild は、アプリケーションを構築するために広く使用されているプラットフォームです。特定の XML タグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharper を使用すると、より速く行うことができます。コード検査:あらかじめ定義された要素またはその属性の名前を誤って入力した場合、ReSharper はそのような不一致についてハイライト表示します。まだ定義されていないプロパティを参照しようとすると、ReSharper はそのようなケースも検出します。MSBuild...