ReSharper 2024.3 ヘルプ

抽象クラスをインターフェースに変換リファクタリング

このリファクタリングにより、抽象クラスをインターフェースに変換することができます。これは、あるクラスに複数の抽象クラスを継承させたい場合に便利です。そうすれば、そのうちの 1 つを簡単にインターフェースに変換できます。

以下の例を考えてみましょう。リファクタリングを適用した後、クラスはインターフェースに変換されます。

public abstract class CachedItem { public abstract int Id { get; set; } public abstract void Register(); public abstract void UnRegister(); }
public interface CachedItem { int Id { get; set; } void Register(); void UnRegister(); }

抽象クラスをインターフェースに変換する

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

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

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

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

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

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

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

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

    • Control+Shift+R を押し、抽象クラスをインターフェースに変換を選択します。

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

    • メインメニューから ReSharper | リファクタリング | 変換 | インターフェースへの抽象クラス ... を選択します。

  3. 抽象クラスに抽象クラス以外のメンバーが含まれている場合、ReSharper は、そのメンバーのボディやアクセサーを削除することを通知するダイアログを表示します。これを避けるには、非抽象メンバーのロジックを子クラスまたは他の場所に手動で移動し、再度リファクタリングを呼び出す必要があります。

  4. 競合が識別されない場合、抽象クラスは同じ名前のインターフェースに変換され、それに応じて抽象メンバーの修飾子が変更されます。それ以外の場合は、競合を解決します。

デフォルトでは、インターフェースの命名スタイルでは、I で始まるインターフェース名が必要です。設定を変更しなかった場合、インターフェース名は一貫性のない名前でハイライトされます。Alt+Enter を押し、対応するクイックフィックスを使用してインターフェースの名前を変更するだけです。

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

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

関連ページ:

インターフェースを抽象クラスに変換リファクタリング

このリファクタリングにより、インターフェースが抽象クラスに変換され、クラスおよびインターフェースのセット間の階層依存性をすばやく変更できます。次の例を考えてみましょう。interface Shape { double Area { get; } void Draw(); } class Circle : Shape { private readonly int radius; public double Area => Math.PI * Math.Pow(radius, 2); publ...

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

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

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

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

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

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

ネーミングスタイル

ReSharper は、コード内のシンボルの希望する命名スタイルを定義、制御、適用できます。一連のルールがあり、各ルールは一連の制約を持つ特定の識別子を対象とします (たとえば、ルールは静的プライベート読み取り専用フィールドを対象にすることができます)。各ルールには、複合語、アンダースコア、接尾辞、接頭辞などの大文字化を定義する 1 つ以上の関連スタイルを含めることができます。これらのルールは、ReSharper がコード補完およびコード生成機能を使用して新しいコードを生成し、コードテンプレート...

Rename リファクタリング

このリファクタリングにより、ソリューション内の任意のシンボルまたはプロジェクトの名前を変更できます。シンボルへの参照および使用箇所はすべて自動的に更新されます。さまざまな C# エンティティにリファクタリングを使用する:これは、このリファクタリングで名前を変更できるエンティティのリストです。名前空間また、名前空間のネストレベルを変更することもできます。例: 名前空間をに変更できます。タイプ名前が変更された型が同じ名前のファイルにある場合、ReSharper は含まれているファイルの名前も変更し...