ReSharper 2024.3 ヘルプ

「スーパークラスの抽出」リファクタリング

このリファクタリングを使用すると、選択したクラスから特定のメンバーを新しい基本クラスに抽出できます。元のクラスは、作成された基本クラスを拡張します。

現在の型がすでにインターフェースを実装している場合、それらのインターフェースを新しい基本クラスに抽出することもできます。

抽象クラスを作成する場合は、抽出されたメソッド abstract の少なくとも 1 つにマークを付けます。

以下の例では、既存のクラス Circle から抽象クラス Shape を抽出します。

public class Circle : IDrawable { public Point Center { get; private set; } public Color MyColor { get; private set; } public int Radius { get; private set; } public void Draw() { // draw... } } public interface IDrawable { void Draw(); }
public abstract class Shape : IDrawable { public Color MyColor { get; private set; } public abstract void Draw(); } public class Circle : Shape { public Point Center { get; private set; } public int Radius { get; private set; } public override void Draw() { // draw... } } public interface IDrawable { void Draw(); }

基本クラスを抽出する

  1. 次のいずれかの方法でクラスを選択します。

    • エディターで、クラス名にキャレットを置きます。

    • ソリューションエクスプローラーでクラスを選択します。

    • ファイル構造ウィンドウウィンドウでクラスを選択します。

    • クラスビューでクラスを選択します。

    • オブジェクトブラウザーでクラスを選択します。

    • 型依存関係ダイアグラムでクラスを選択します。

  2. 以下のいずれか 1 つを実行します:

    • Control+Shift+R を押し、スーパークラスの抽出を選択します。

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

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

    スーパークラスの抽出ダイアログが開きます。

  3. 新しい基本クラスの名前とその配置場所(新しいファイルまたは元の型と同じファイル)を指定します。

  4. 新しい基本クラスに転送するメンバーを選択します。メンバーのリストには、以下が含まれます。

    • 現在の型のメンバー

    • 選択された型が現在実装しているインターフェース

  5. 個々のメンバーを抽象化 / 保持するには、それらの隣の abstract にする列のチェックボックスをオンにします。抽象とマークされたメンバーが少なくとも 1 つある場合、基本クラスも抽象として作成されます。

  6. すべてのパブリックメンバーをすばやく選択するには、すべてのパブリックをクリックします。

  7. 他のメンバーを参照するメンバーを選択すると、抽出されたクラスに未定義のシンボルが表示されます。現在選択されているメンバーに依存するすべてのメンバーを選択して、競合を解決するには、依存をクリックします。

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

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

ReSharper. Extract Superclass (Base class) refactoring

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

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

関連ページ:

インターフェースの抽出リファクタリング

このリファクタリングは、選択した型に基づいて新しいインターフェースを作成できます。ReSharper は、新しいインターフェースに転送するメンバーを選択することを提案しています。抽出後、元の型が更新され、新しいインターフェースが実装されます。現在の型がすでにインターフェースを実装している場合は、それらのインターフェースを新しいインターフェースに抽出することもできます。以下の例では、クラスのプロパティとメソッドが抽出され、新しいインターフェースが作成されます。class Circle { publ...

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

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

型依存関係ダイアグラムを調べる

ReSharper を使用すると、ソリューション内で型が相互にどのように依存しているかを視覚的に調べることができます。さまざまなプロジェクトまたはコンパイルされたアセンブリから任意の数の型を型依存関係ダイアグラムに追加し、それらの間のさまざまな種類の依存関係を調べることができます。初期ダイアグラムを作成する:新しい型依存関係ダイアグラムを作成するには、いくつかの方法があります。ソリューションエクスプローラー、オブジェクトブラウザー、アーキテクチャエクスプローラー、クラスビュー、またはアセンブリ...

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

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

さまざまな言語の ReSharper 機能

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

ASP.NET MVC 特有の機能

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