入力支援機能
補完リストでスマートな提案を提示することで時間を節約できるほか、ReSharper には入力支援機能があり、コードをさらに素早く作成・編集できます。
一致する区切り文字を自動挿入
デフォルトでは、開始区切り文字 (、 [、 " または ' を入力するたびに、対になった文字が自動的に挿入されます (適切な場合)。 気が変わって
Backspace
を押して開始区切り文字を削除すると、そのペアとなる終了区切り文字も削除されます。 一致する終了区切り文字がすでに存在する場合、ReSharper はもう一つ追加しません。 フォーマットに従って、一致するシンボルが挿入されます。
波括弧 {} に関して、ReSharper は開く波括弧を入力した直後、または
Enter
を押したタイミングで右波括弧をすぐに挿入できます。
必要に応じて、デフォルトの動作を変更できます。 これを行うには、 ページの ReSharper オプション Alt+R、O に進み、 波括弧および丸括弧 セクションのコントロールを使ってください。
正しい長さ / 数のタイプミス
ReSharper は、配列やコレクションの Length/Count プロパティを誤って入力してしまうのを防ぎます。 配列使用時に Count プロパティを誤入力し始めるとすぐ、ReSharper の補完リストから選択して本来入力するはずだった Length プロパティに置き換えることができます。

同様に、間違って Length プロパティを入力し始めると、コレクションの使用箇所で Count プロパティを呼び出すのに役立ちます。

補完の提案を受け入れるとすぐに、正しいプロパティが表示されます。
ページの 一般的なエラーを修正するために特別なアイテムを追加する(長さと数のような) チェックボックスをオフにすると、ReSharper オプション
Alt+R、O
の Length/Count の入力ミスに対する補完候補を無効化できます。
メソッドパラメーターの使用箇所から型パラメーターを作成する
ジェネリクスメソッドを作成するときは、新しいパラメーターに T を入力し、補完リストで対応する項目を選択することで、型パラメーターを簡単に追加できます

ReSharper は新しい型パラメーターをメソッド宣言に追加し、その宣言部および使用箇所で型パラメーター名を入力できる位置にキャレットを移動します:

名前の入力が終わったら Enter または タブ を押して入力を続けてください。
ドットとセミコロンのスマートな動作
デフォルトでは、補完リストでメソッドを選択すると、ReSharper は自動的に丸括弧を追加し、キャレットをその間に配置して引数の入力ができる状態になります。 パラメーターなしでメソッドを呼び出し、別のメソッドをチェーン呼び出ししたい場合は、キャレットの場所でドットを入力すると ReSharper がドットを適切な位置に移動します:
myStringBuilder.AppendLine(./*caret*/) は myStringBuilder.AppendLine()./*caret*/ になります
メソッド呼び出しを完了させてからさらにチェーン呼び出ししたい場合でも、キャレットを移動せずに最後のセミコロンの直後にドットを入力するだけです:
myStringBuilder.AppendLine();./*caret*/ は myStringBuilder.AppendLine()./*caret*/; になります
キャレットが丸括弧内にある場合、外に移動せずにそのまま、または最後の引数の後ですぐにセミコロンを入力できます:
myStringBuilder.AppendLine("line";/*caret*/) は myStringBuilder.AppendLine("line");/*caret*/ になります
逐語的文字列補間の接頭辞を修正
C# 6.0 以降では、 $ および @ 接頭辞を正しい順序で追加すると、同じ文字列を 補間および 逐語的に作成できます ($@"some string")。
ReSharper を使えば常に順序は正しくなり、間違って入力されても @$ が自動的に正しい $@ に置き換わります。
NotNull/CanBeNull アノテーションを追加する
プロジェクトで コードアノテーションサポートが 有効になっている場合は、 [NotNull] アノテーションと [CanBeNull] アノテーションを追加し、1 回のキーストロークで null チェックを生成できます。
メソッドシグネチャーやメンバー宣言を記述する際、型名の直後に
!または?を入力すると、[NotNull]または[CanBeNull]でアノテーション付与された項目を取得できます:
シンボルにすでに
[NotNull]または[CanBeNull]がアノテーションされている場合は、それに応じて?または!を入力して、既存のアノテーションを変更することができます。パラメーターが [NotNull] 属性でマークされている場合、パラメーター名またはパラメーター型の直後にキャレットを置き、 ! を押してください:
private void Foo([NotNull] object/*!*/ arg/*!*/)ReSharper はこのパラメーターに null チェックを生成します。 null チェックパターンは、 ページの ReSharper オプション Alt+R、O で設定できます。
null 許容参照型を使用している場合、ReSharper は null 許容型修飾子
?を正しい位置に自動的に移動します。 例:string myString?と入力すると、自動的にstring? myStringに修正されます。
デフォルトでは、 [NotNull] または [CanBeNull] の入力支援が有効になっています。 無効化したい場合は、 null の可能性をアノテーションする ... チェックボックスを ページの ReSharper オプション
Alt+R、O
でオフにしてください。
式本体をブロック本体のメンバーに変換する
式のようなメンバーで => の後に { を入力すると、ReSharper はその箇所をブロック本体へ変換します:

空行の仮想インデント
ReSharper は末尾空白を回避しつつ、キャレットをすぐに入力位置に配置できます。 Enter を押す際、ReSharper はインデント文字は挿入しませんが、この行のインデント計算に従ってキャレットを設定します。 入力を開始すると、ReSharper はインデント文字(空白、タブ、その組み合わせなど設定に応じて)を自動的に挿入し、コードが適切にフォーマットされた状態を維持します。
この機能はバーチャルインデントと呼ばれ、デフォルトで有効化されています。エディター( )で空白表示を選択していない限り、気付くことはありません。
Enter でコメントを複数行にする
ブロックコメント
複数行のブロックコメント /*....*/ を記述する際、開き部分 /* を入力し、最初の行を書いた後、その行の末尾で
Enter
を押すと、ReSharper が終了部分 */ を挿入します。
さらに、
Enter
を押すごとに ReSharper はブロックコメント各行頭にアスタリスク * を自動挿入します。 この動作はデフォルトで有効化されていますが、無効化したい場合は /* の後に Enter で * を挿入する。 チェックボックスを ページの ReSharper オプション
Alt+R、O
でオフにしてください。 このオプションが有効化されている場合でも、
Shift+Enter
を押すことで、先頭のアスタリスクなしで新しい行を追加できます。

行コメント
シンプルな(XML Doc 以外の)行コメント内でコメントテキストの途中で
Enter
を押すと、新しい行にコンパイルできないテキストができないように、ReSharper が自動でテキストの先頭にスラッシュ // を 2 個追加します。 コメント行末で
Enter
を押すと、ごく普通に空行が始まります。
中括弧と括弧でコードブロックを囲む
ReSharper ではコードブロックや式を選択してから、開始 { または終了 } ブレースを入力して選択範囲をブレース内に、または開始 ( または終了 ) 丸括弧を入力して選択範囲を丸括弧内に配置できます。
この動作を有効化または無効化するには、 引用符、中括弧、丸括弧の入力時に選択範囲を囲む チェックボックスを ページの ReSharper オプション Alt+R、O で使用してください。
新しい行を自動インデントする
エディターで新しい行を開始すると、ReSharper はインデントに影響するすべての設定(例えばタブの利用( で設定可能)、チェーンメソッド呼び出しの整列( で設定可能)など)を考慮して必要なインデントを自動で計算します。
この動作はデフォルトで有効化されており、エディターで Enter を押すと、ReSharper がキャレットを次の行の期待されるインデント位置に設定します。
必要に応じて、 Enter でスマートインデント を ページの ReSharper オプション Alt+R、O でクリアすると、この動作を無効化できます。
バックスペースでコード行をインデント解除する
空行またはキャレット左側に空白やタブのみがある場合に Backspace を押すと、ReSharper はキャレットを一度に 1 つずつ戻す代わりに適切なインデント位置に戻します。

この動作は バックスペースでインデント解除 セレクターを ページの ReSharper オプション Alt+R、O で使って設定できます。 次のオプションが利用可能です。
無効 — キャレットを 1 つずつ戻します。
最も近いインデント位置ま で — 現在のインデントサイズの倍数である最も近い位置にキャレットを返します。
適切なインデント位置ま で(デフォルト) - コード構造に従って、キャレットを予想されるインデント位置に戻します。
構造的除去
ReSharper は、さまざまなコード構造の一部を削除した後も残る空白やユーティリティ文字を自動で削除できます。 例: パラメーターまたは引数を削除した後の , 、属性を削除した後の [] 、初期化子を削除した後の =
これは、 構造選択 (Control+W )や 構造ナビゲーション ( タブ )で選択されたコード要素の上で Backspace 、 削除 、または Ctrl+X を押した場合、あるいは 要素の再配置 ( Ctrl+Shift+Alt + Up/Down/Left/Right )の後、選択が残っている場合に発生します。

この動作を有効化または無効化するには、 構造的削除を有効化 チェックボックスを ページの ReSharper オプション Alt+R、O で利用してください。