コード要素を再配置する
ReSharper を使用すると、コード内の式、ステートメント、型メンバー、その他の要素をすばやく並べ替えることができます。
仕組み
コードを並べ替えるには、移動したいコード要素または選択範囲上で Ctrl+Shift+Alt を押します。 要素を移動することが理にかなっている場合、ReSharper は可能な移動オプションを持つツールチップを表示します。
選択せずにこのコマンドを呼び出すと、ReSharper が可動要素を自動的に選択します。 場合によっては選択範囲が2つ作られます。 この場合、一方の選択は青色で、もう一方は黄色でハイライトされます。 例えば、関数のパラメーター上でこのコマンドを実行すると、ReSharper は2つの選択範囲を作成します:1つは他のパラメーターに対して左右に移動可能なパラメーター自体、もう1つは他の型メンバーに対して上下に移動できる関数全体です:

上へ移動 と 下へ移動 コマンドは非常にわかりやすく、特定のスコープ内で要素を他の要素に対して上下に移動できます。 例えば、ファイル内のタイプ、型内の型メンバー、型メンバー内や複合ステートメント内のステートメントなどを上下に移動できます。
現在の要素がスコープの最初または最後にある場合、ReSharper では上 / 下コマンドでそれ以上移動できません。
左に移動 および 右に移動 コマンドは、2 つの目的を果たします。
通常は 1 行で記述される要素を再配置します。 例: 左右の属性、関数パラメーター、式のオペランド、割り当てステートメントの一部などを移動できます。 左 / 右コマンドは、これらの要素が複数行で記述されている場合でも適用されます。
ステートメントを複合ステートメントまたはその直後のリージョン内に移動する(右に移動する)か、ステートメントを複合ステートメントまたはリージョン外に移動します(左に移動する)。
ReSharper は無効な移動を許可しないようにしますが、ロジックやコードのコンパイルが壊れる場合もあります。 ReSharper には、例えば 型を外部スコープに移動リファクタリング や シグネチャーの変更リファクタリング など、コードを安全に再配置するのに役立つ多くのリファクタリングがあります。 コード要素を移動した後にコードが壊れた場合は、 Alt+Enter を押して、使用可能な クイックフィックスを確認してください。 ほとんどの場合、 アクションリストで適切なリファクタリングが見つかります。
適用事例
ReSharper では、次の方法で要素を移動できます:
型と型メンバー。 シンボルに XML コメントが付いている場合、ReSharper はシンボルと一緒にそれらも移動します。
現在のファイル内または包含する宣言内での型の上下
タイプ内でメンバーを上下にタイプします
左右のベースタイプ
型パラメーター left と right
型制約を上下に型する
左右の属性
宣言のパラメーターや関数利用時の引数の左右(関数宣言のパラメーターを並べ替える場合、ReSharper は関数のすべての使用箇所で引数も変更されるよう シグネチャーの変更リファクタリング を提案します)
プロパティの setter と getter の上下
ステートメント
左辺と右辺の代入文の一部
関数内または複合語内のステートメント
複合文からの文(左)、または直後の複合文への文 (右揃え)
switch ステートメント内のセクションを上下に切り替えます
if-else、try-catch ステートメントの 1 つの節、1 つのスイッチセクションから別のスイッチセクションへのステートメント
try-catch ステートメント内の
catch句を上下に移動複合ステートメントの右波括弧を上下に移動(グリーディ波括弧)。 右波括弧を移動するには、波括弧の外側にキャレットを置いて Ctrl+Shift+Alt を押し、上下の矢印キーで現在の複合文の後に続くステートメントをその内部に含めたり、最後のステートメントを外に移動したりします。
タイプまたは名前空間の波括弧を開くか閉じることは、「貪欲な波括弧」としても機能します。 この場合、ネストされた型 / メンバー / ネームスペースがインクルード / 除外されます。
式
左と右の式のオペランド
コレクションの要素と配列の初期化の左右
問合せ式の上下の節
左右の範囲式オペランド(C# 8)
その他の要素
ジェネリクス型 / メソッド宣言の型パラメーター
左と右のテンプレート文字列の引数
補間された文字列内の値
行と C スタイルのコメントを上下に
#regionのブロックが上下に移動し、別の#regionブロックの中に入ったり来たりする#regionと#endregionは上下に指示しますキャレットが上下に配置されているテキストファイルの行
テキストファイル内での選択
この機能は、次の言語とテクノロジーで サポートされています。
ここで説明する手順と例では、C# の機能の使用について説明します。 他の言語の詳細については、 言語およびフレームワーク セクションの対応するトピックを参照してください。