ReSharper 2026.1 Help

インスタンスメソッドの移動リファクタリング

このリファクタリングにより、インスタンス(非静的)メソッドを別の型に移動できます。 静的メンバーを移動するとは対照的に、インスタンスメソッドはどの型にも移動できません。 潜在的なターゲット型のリストには、メソッドパラメーターの型と現在の型のフィールドの型が含まれます。 メソッドが他のクラスメンバーを使用する場合、リファクタリングはソースクラスをパラメーターとして渡します。 また、必要に応じて、非パブリックメンバーのアクセス権を変更し、フィールドをパブリックプロパティにカプセル化します。 メソッドのすべての使用箇所は自動的に更新されます。

このリファクタリングは、メソッドのロジックがメソッドのパラメーターまたはフィールドとして渡される別の型に適していることがわかっている場合に役立ちます。

以下の例では、リファクタリングを LogDrawing インスタンスメソッドに適用して Logger クラスに移動します。 メソッドで使用されるプライベート pivot フィールドは、対応するプロパティに自動的にカプセル化されます。

class Shape { private Point pivot; private void LogDrawing(Logger logger) { var msg = $"Shape is drawn at {pivot.X}, {pivot.Y}"; logger.Log(msg); } } class Logger { public void Log(string msg) { // log the message } }
class Shape { private Point pivot; public Point Pivot { set { pivot = value; } get { return pivot; } } } class Logger { public void Log(string msg) { // log the message } private void LogDrawing(Shape shape) { var msg = $"Shape is drawn at" {shape.Pivot.X}, {shape.Pivot.Y}"; this.Log(msg); } }

インスタンスメソッドを別の型に移動する

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

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

    • F6 を押します。

    • Control+Shift+R を押し、を インスタンスメソッドの移動 を選択します。

    • 右クリックして、コンテキストメニューから リファクタリング | インスタンスメソッドの移動 を選択します。

    • メインメニューから ReSharper | リファクタリング | 移動… を選択します。

    インスタンスメソッドの移動 ダイアログが開きます。

  3. 宛先型を選択します。

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

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