ReSharper 2024.3 ヘルプ

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

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

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

以下の例では、リファクタリングを 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. 以下のいずれか 1 つを実行します:

    • F6 を押します。

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

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

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

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

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

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

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

ReSharper. Move Instance Method refactoring

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

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

関連ページ:

別の型に移動リファクタリング

このリファクタリングは、ネストされた型および静的メンバーを別の型(既存のものまたは新しいもの)に移動できます。メンバーが元の型の他のメンバーを使用するシナリオを含めて、すべての参照と用途が自動的に更新されます。コマンドでリファクタリングを呼び出す:次のいずれかの方法で、ネストされた型またはスタティックメンバーを選択します。エディターで、ネストされた型の名前にキャレットを置きます。ソリューションエクスプローラーでネストされた型を選択します。ファイル構造ウィンドウウィンドウでネストされた型を選択し

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

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

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

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

さまざまな言語の ReSharper 機能

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

ASP.NET MVC 特有の機能

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

言語による ReSharper: MSBuild

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