Refactoring
全体で ReSharper は27の自動コードリファクタリングを提供しています。それは Visual Studio 2005 が提供するものよりも非常に広範です。 特定のリファクタリングを適用するには、ReSharper の Refactor メニューから選択するか、 キーボードショートカットを利用します。あるいは、現在のキャレット位置(または現在の範囲選択) で適用可能なリファクタリングを見るには、Ctrl + Shift + R (Refactor This) キーを押します。
Rename Symbol(シンボルの名前変更)
名前変更機能は、任意のシンボル(namespace, 型, メソッド, フィールドを含む) について 名前を変更することが可能で、自動的に参照されている名前を見つけて修正します。 名前変更リファクタリングは任意のビュー(クラスビュー、オブジェクトブラウザ)から実行することも、 エディタ上で直接実行することもできます。 詳しくはこちら ».
Move Type(型 移動)
namespace間で型を移動し、その型への参照を自動的に更新することが簡単にできます。 詳しくはこちら ».
Copy Type(型 コピー)
わずか1秒で型のコピーを作成し、別の名前を割り当てたり別のnamespaceに配置できます。 更に ReSharper は別ファイルに作成する面倒も見てくれます。 詳しくはこちら ».
Change Method Signature(メソッド シグニチャの変更)
このリファクタリングにより、メソッドのシグニチャを次の方法で変更できます。
- 引数の追加
- 引数の削除
- 引数の名前変更
- 引数の順序変更
- 返り値の型の変更
- 引数の型変更
シグニチャの変更とともに、ReSharper はすべてのメソッドの利用箇所を検索し、 すべての呼び出し、実装、およびオーバーライドを変更内容に従って修正します。 パラメータが新しく追加された場合、ユーザによって指定されたデフォルト値が すべてのメソッド呼び出しにおいて設置されます。 詳しくはこちら ».
Extract Method (メソッドとして抽出)
コードブロックを選択し、「メソッドとして抽出」を実行すると、それをメソッドとして抽出するようなリファクタリングをします。 ReSharper は自動的にコードを解析し、元のメソッドのどの変数を抽出されたメソッドのパラメータとして渡すべきかを検出します。 その変数はコード片の中で利用できるよう修正されます。 詳しくはこちら ».
Extract type to a new file(新規ファイルに型を抽出)
このリファクタリングにより、ある型を実装したコードをすばやく別ファイルに移動できます。 詳しくはこちら ».
Introduce Variable(変数導出)
コード中の任意の式を選択し、Introduce Variable リファクタリングを実行します。 新しいローカル変数が宣言され、その選択された式により初期化されます。 元の式はその変数により置換されます。 通常その式はコード中で複数回登場するはずなので、すべての適合する式を 新しい変数で置換するオプションを指定できます。 同様に定数式を定数として導出することもできます。
この図は、aL.GetEnumerator() 式に対して、 新しい変数eがIEnumerable(ReSharperにより導出) として導出された結果を示しています。 詳しくはこちら ».
Introduce Field(フィールド導出)
式またはローカル変数を選択して、Introduce Field リファクタリングを実行します。 これにより新しいフィールドまたは定数が作成され、指定された式またはローカル変数により初期化されます。 このフィールドは初期化式、コンストラクタ、またはカレントメンバにて初期化することができます。 詳しくはこちら ».
訳注:Select and expression or local variable → Select a expression or local variable では?
Introduce Parameter(引数導出)
メソッド中の式またはローカル変数を選択して、Introduce Parameter リファクタリングを実行すると、新しいパラメータが作成され、 すべての呼び出しにおいて適切に初期化されます。 詳しくはこちら ».
Inline Variable(変数のインライン化)
任意の変数を選択し、Inline Variable リファクタリングを実行します。 選択された変数に関するすべての参照に関してその初期化式で置換されます。 (すなわち、このリファクタリングは変数導出リファクタリングの反対を行います) 詳しくはこちら ».
Extract Interface(インターフェース抽出)
このリファクタリングは、あるクラスからインターフェースを作成し、 そのクラスを作成されたインターフェースが実装された状態にします。 ユーザはインターフェースとして抽出したいメンバー群を選択し、インターフェース名をつけます。 このリファクタリングは、クラスインターフェースを指定し、適切に利用するために有用です。 詳しくはこちら ».
Extract Superclass(スーパークラス抽出)
このリファクタリングは、あるクラスの基底クラスを作成し、いくつかのメンバを移動します。 キャレットをクラス定義に移動し、抽出したいメンバを選択し、リファクタリングを実行します。 このリファクタリングはいくつかのロジックを後で共有するために基底クラスへ移動するのに非常に有用です。 詳しくはこちら ».
Extract Class from Method Parameters(メソッド引数からクラスの抽出)
このリファクタリングは新しいクラスまたは構造体を作成し、選択されたメソッドのパラメータを 新しく作成された型のフィールドに変換します。 また、メソッドパラメータをこの型のオブジェクトで置換します。 詳しくはこちら ».
Make Method Static(メソッドをstaticにする)
このリファクタリングは、thisをメソッドのパラメータにすることにより非staticメソッドをstaticメソッドに変換します。 リファクタリングをすると、対象メソッドはstaticで宣言され、もしあれば必要なパラメータが呼び出し側に追加されます。 このリファクタリングは非staticメソッドを移動するのにも有用です。 この場合、Make Method Static はMove Membersリファクタリングの準備ステップとして使います。 詳しくはこちら ».
訳注:The refactoring is also useful when you want to move non-static methods. → The refactoring is also useful when you want to move Members. の間違い?
Make Method Non-Static(メソッドを非staticにする)
このリファクタリングはstaticメソッドを非satticメソッドに変換し、必要に応じて呼び出し側を置換します。 詳しくはこちら ».
Use Base Type where Possible(可能であれば基底クラスを使う)
このリファクタリングは特定の型をその基底型またはインターフェースに置換することにより一般化します。 この機能は特にPull Members Upリファクタリングの後に有用です。 詳しくはこちら ».
Pull Members Up(メンバの引き上げ)
このリファクタリングは型のメンバを基底型またはインターフェースに移動します。 詳しくはこちら ».
Push Members Down(メンバの押し下げ)
このリファクタリングは型メンバを子クラスに移動するこちにより、型階層を掃除する手助けをします。 詳しくはこちら ».
Safe Delete(安全な削除)
ある型、フィールド、メソッド、任意のシンボルをを削除しようとする場合、 このリファクタリングを使って確実に安全な削除を実行します。 検索の結果シンボルを利用していないことが分かると、シンボルは削除されます。 そうでない場合、ReSharperは利用箇所を表示し、削除するのは安全でないことを示します。 さらに関連するコードを編集することができます。 詳しくはこちら ».
Convert Method to Property(メソッドのプロパティへの変換)
このリファクタリングは、引数のない非voidメソッドをreadアクセス用プロパティに変換し、 1引数voidメソッドをwriteアクセス用プロパティに変換します。 このリファクタリングは特にsetter,getterメソッドを利用した(例えばC++などの)古式のコードを変換するのに有用です。 詳しくはこちら ».
Convert Property to Method(プロパティのメソッドへの変換)
このリファクタリングは、readアクセスのあるプロパティをgetter– 型のメソッド(引数のない非voidメソッド)に変換し、 writeアクセスのあるパラメータをsetter– 型のメソッド(1引数voidメソッド)に変換します。 read,write 両方のアクセスのあるプロパティは、getter– ,setter– 型の両方のメソッドに変換出来ます。 詳しくはこちら ».
Convert Abstract Class to Interface(抽象クラスをインターフェースに変換)
このリファクタリングは、抽象クラスをインターフェースに変換します。 詳しくはこちら ».
Convert Interface to Abstract Class(インターフェースを抽象クラスに変換)
インターフェースに対して何らかのロジックを追加した場合、このリファクタリングを実行sてクラスにします。 すべての適切な変換が行われます。
Encapsulate Field(フィールドのカプセル化)
あるフィールドに対する適切なアクセサの作成をしなくても、このリファクタリングを実行するとアクセサを作成します。 またフィールドに対する利用箇所はプロパティの利用に置換します。 詳しくはこちら ».
Move Type to Outer Scope(ネストされた型を外に移動)
このリファクタリングは、ネストされた内部型を外に出します。 内部型が囲まれた型を利用している場合、囲まれた型への参照は、移動後の型のコンストラクタ引数として渡されます。 詳しくはこちら ».
訳注:encloning type の意味するところが分からず、訳しきれていない。
Move Static Members(staticメンバの移動)
このリファクタリングはstaticフィールドとメソッドを別の型に移動します。
非staticメソッドを移動する場合、次のようなリファクタリング手順を実行することになるでしょう:
Make Method Static->Move Static Member->Make Method Non-static.
詳しくはこちら ».