インターフェイスの抽出リファクタリング (C#)
[インターフェイスの抽出] は、既存のクラス、構造体、またはインターフェイスに基づくメンバーを使用して新規インターフェイスを簡単に作成できるリファクタリング操作です。
複数のクライアントで使用するクラス、構造体、またはインターフェイスのメンバーのサブセットが同じ場合、または複数のクラス、構造体、またはインターフェイスがメンバーのサブセットを共有する場合は、インターフェイスにメンバーのサブセットを組み入れることが便利なことがあります。インターフェイスの使用の詳細については、「インターフェイス (C# プログラミング ガイド)」を参照してください。
[インターフェイスの抽出] では、新規ファイル内にインターフェイスが生成され、その新規ファイルの先頭にカーソルが移動します。新規インターフェイスに対して抽出するメンバー、新規インターフェイスの名前、および生成されるファイルの名前は、[インターフェイスの抽出] ダイアログ ボックスを使用して指定できます。
[インターフェイスの抽出] を使用するには
ExtractInterface という名前のコンソール アプリケーションを作成し、Program を次のコードで置き換えます。
// Invoke Extract Interface on ProtoA. // Note: the extracted interface will be created in a new file. class ProtoA { public void MethodB(string s) { } }
カーソルを MethodB に移動し、[リファクター] メニューの [インターフェイスの抽出] をクリックします。
[インターフェイスの抽出] ダイアログ ボックスが表示されます。
キーボード ショートカットとして Ctrl キーを押しながら R キーを押し、次に I キーを押すことでも、[インターフェイスの抽出] ダイアログ ボックスを表示できます。
[インターフェイスの抽出] ダイアログ ボックスを表示するには、マウスを右クリックし、[リファクター] をポイントし、[インターフェイスの抽出] をクリックする方法もあります。
[すべて選択] をクリックします。
[OK] をクリックします。
新規ファイル IProtoA.cs と次のコードが表示されます。
using System; namespace TopThreeRefactorings { interface IProtoA { void MethodB(string s); } }
解説
この機能は、抽出するメンバーが含まれるクラス、構造体、またはインターフェイスにカーソルが位置しているときだけ利用できます。カーソルがこの位置に置かれているときに、[インターフェイスの抽出] リファクタリング操作を呼び出してください。
クラスまたは構造体でインターフェイスの抽出を呼び出す場合、新規のインターフェイス名が含まれるように、ベースおよびインターフェイスの一覧が変更されます。インターフェイスでインターフェイスの抽出を呼び出す場合、ベースおよびインターフェイスの一覧は変更されません。