クラスの抽出リファクタリング
このリファクタリングにより、既存のクラスのメンバーを新しいクラスに移動できます。 複数のタスクを担当する単一のクラスを、それぞれが単一の責任を持つ複数のクラスに置き換える必要がある場合に役立ちます。
ReSharper は、新しく作成されたクラスにアクセスできる参照フィールドを自動的に作成します。 必要に応じて、元のクラスの抽出されたメンバーをコピーとして残すことも、実装が新しいクラスの同じメンバーに委譲されるようにすることもできます。
以下の例では、新しい Logger クラスに LogError メソッドを抽出します
選択したメンバーから新しいクラスを作成する
次のいずれかの方法で移動するクラスまたはメンバーを選択します。
エディターで、クラスまたはメンバーの名前にキャレットを置きます。
ファイル構造ウィンドウウィンドウでクラスまたはメンバーを選択します。
クラスビューでクラスまたはメンバーを選択します。
オブジェクトブラウザーでクラスまたはメンバーを選択します。
型依存関係ダイアグラムでクラスまたはメンバーを選択します。
次のいずれかを実行します。
Control+Shift+R を押し、を クラスの抽出 を選択します。
右クリックして、コンテキストメニューから リファクタリング | クラスの抽出 を選択します。
メインメニューから を選択します。
クラスの抽出 ダイアログが開きます。
新しいクラスの名前とその配置場所(新しいファイルまたは元の型と同じファイル)を指定します。
新しいクラスに移動するメンバーを選択します。 メンバーを選択すると、ReSharper は選択したメンバーを使用している他のメンバーの抽出を提案します。 提案されたメンバーは、緑色の 抽出 ラベルで識別できます。
この提案を受け入れる必要はありませんが、受け入れる場合は、 提案されたすべてのメンバーを抽出する をクリックしてすべてを選択できます。
選択したすべてのメンバーには、 ソース クラスメンバー 列にセレクターがあります。 メンバーを現在のクラスで直接使用できるようにする場合は、このセレクターをクリックして、メソッドとプロパティに デリゲートラッパーの作成 を選択するか、プロパティとフィールドに コピー作成 を選択します。
抽出しない他のメンバーが使用する非公開メンバーを抽出する場合、ReSharper は抽出されたメンバーが非公開のままだとこれらの使用が機能しないことを警告します。 提案されたすべてのメンバーを抽出する をクリックして依存メンバーを選択するか、警告アイコンをクリックして、推奨される修正のいずれかを選択できます。

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

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