ReSharper 2019.3ヘルプ

入力支援

補完リストでスマートな提案を提供することによってあなたの時間を節約することに加えて、ReSharperはあなたのコードをさらに速く作成して、編集することを可能にする他のタイピング支援機能を提供します。

マッチング区切り文字の自動挿入

デフォルトでは、開始区切り記号 ( , [ , "または 'を入力すると必ず、(適切な場合はいつでも)ペアの文字が自動的に挿入されます。気が変わって Backspace を押して開始区切り文字を削除すると、その終了ペアも削除されます。ペアリングの終了区切り文字が既に存在する場合、ReSharperは別のものを追加しません。一致する記号は、フォーマット設定に従って挿入されます。

波括弧 {}に関しては、ReSharperは、Enterを押すか、または Enterを押すとすぐに波括弧を閉じることができます。

必要に応じて、デフォルトの動作を変更できます。これを行うには、ReSharperオプション(Alt+R,,O)の環境 | エディター | エディターの動作ページに移動し、波括弧および丸括弧セクションのコントロールを使用します。

長さ/訂正ミスタイプの修正

ReSharperを使用すると、配列/コレクションの誤った Length / Count プロパティにつまずくことを防ぐことができます。誤って配列を使用するために Count プロパティを入力し始めるとすぐに、ReSharperは補完リストからそれを選択して、おそらく入力しようとしていた Length プロパティに置き換えることを可能にします。

Completing mistyped Count property for array

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

Completing mistyped Length property for collection

完了の提案を受け入れるとすぐに、正しいプロパティが表示されます。

void Foo(int[] array, List<int> collection) { if(array.Length == collection.Count }

列挙型の等価性とフラグチェックを生成する

列挙型の値をこの列挙型のメンバーの1つと比較する必要がある場合は、点を入力して、補完リストで目的の列挙型メンバーを選択します。

Completing enum members to produce equality/flag checks

ReSharperがあなたのために比較を生成します:

public enum Direction { North, East, South, West } void Turn(Direction whereTo) { if(whereTo == Direction.South }

メソッドパラメータの使用箇所から型パラメータを作成する

ジェネリックメソッドを作成するときは、新しいパラメータに T を入力し、補完リストで対応する項目を選択することで、型パラメータを簡単に追加できます

Creating type parameter from usage in method parameters

ReSharperは新しい型パラメータをメソッド宣言に追加し、宣言と使用箇所の両方で型パラメータの名前を入力できる位置に移動します:

Creating type parameter from usage in method parameters

名前の入力が終わったら、Enter または Tab を押して入力を続けます。

ドットとセミコロンのスマートな動作

デフォルトでは、補完リストでメソッドを選択すると、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]注釈を追加したり、単一のキーストロークでnullチェックを生成したりできます。

  • メソッドシグネチャーまたはメンバー宣言を記述するときは、型名の直後に ! または ? を入力して、[NotNull] または [CanBeNull]で注釈を付けた項目を取得します。

  • シンボルに既に [NotNull] または [CanBeNull]が注釈されている場合は、それに応じて ? または ! を入力して、既存の注釈を変更することができます。

  • パラメータに[NotNull]属性が設定されている場合は、パラメータ名またはパラメータタイプの直後にキャレットを設定し、!を押します。

    private void Foo([NotNull] object/*!*/ arg/*!*/)
    ReSharperは、このパラメーターのNULLチェックを生成します。ReSharperオプション(Alt+R,,O)のコード編集 | C# | nullチェックページでnull検査パターンを構成できます。

デフォルトでは、[NotNull] または [CanBeNull] の入力アシストは有効になっています。無効にする場合は、ReSharperオプション(Alt+R,,O)の環境 | エディター | エディターの動作ページのnullの可能性を注釈する...チェックボックスをオフにします。

式のボディをブロックボディのメンバーに変換する

expression-bodiedメンバーの => の後に { と入力すると、ReSharperはそれをブロック本体に変換します:

空行の仮想インデント

ReSharperを使うと、末尾の空白を避けることができ、同時に入力を開始する位置にキャレットを置くことができます。Enterキーを押すと、ReSharperはインデント文字を挿入しませんが、この行に計算されたインデントに従ってキャレットを設定します。入力を開始すると、ReSharperは自動的にインデント文字(空白、タブ、または両方の組み合わせ)を挿入し、コードが適切にフォーマットされた状態を維持します。

この機能は仮想インデントで呼び出され、デフォルトで有効になっています。エディター(編集 | 拡張 | 空白を表示する)に空白を表示することを選択しない限り、通知さえしません。

Enterで複数行にコメントする

ブロック・コメント

複数行のブロックコメント /*....*/を記述する場合、開始部分 /*を入力してから最初の行を記述し、行の最後で Enter を押すだけで済みます。ReSharperは終了部分 */を挿入します。

さらに、ReSharperは、Enterを押すと、ブロックコメントの各行の先頭にアスタリスク * を挿入します。この動作はデフォルトで有効になっていますが、ReSharperオプション(Alt+R,,O)の環境 | エディター | エディターの動作ページの/* の後の Enter で * を挿入するチェックボックスをオフにすることで無効にできます。このオプションが有効になっていても、Shift+Enter を押すと、先頭のアスタリスクなしで新しい行を追加できます。

行コメント

単純な(非XML Doc)行コメントでは、コメントテキストの途中で Enter を押すこともできます。また、新しい行にコンパイルできないテキストが表示されないように、ReSharperは自動的に2つのスラッシュ // をテキストの前に追加します。コメント行の最後で Enter を押すと、通常どおり空の新しい行が開始されます。

波括弧と括弧でコードブロックを折り返す

ReSharperでは、コードブロックまたは式を選択してから、openingc { または終了 } ブレースを入力して選択を中括弧に入れるか、開始 ( または終了 ) 括弧を入力して括弧内に選択を配置できます。この動作を有効または無効にするには、ReSharperオプション(Alt+R,,O)の環境 | エディター | エディターの動作ページの波括弧または丸括弧の入力時に選択範囲を囲むチェックボックスを使用します。

Backspaceでコード行のインデントを解除する

空の行で Backspace を押すか、キャレットの左側に空白とタブしかない場合、ReSharperはキャレットを一度に1つずつ移動するのではなく、適切なインデント位置に戻すことができます。

この動作は、ReSharperオプション(Alt+R,,O)の環境 | エディター | エディターの動作ページのバックスペースでインデント解除セレクターで構成できます。次のオプションが利用可能です。

  • 無効 - キャレットを一度に1ポジションずつ返します。

  • 最も近いインデント位置まで - 現在のインデントサイズの倍数である最も近い位置にキャレットを返します。

  • 適切なインデント位置まで(デフォルト) - コード構造に従って、キャレットを予想されるインデント位置に戻します。

最終更新日: 2020年1月17日

関連ページ:

コード補完 (IntelliSense)

ReSharperは、高度な機能を備えたVisual Studioのネイティブコード補完(IntelliSense)を補完し、拡張します。例:あなたの入力に基づいて提案のリストを絞り込み、選択したタイプと拡張メソッドを自動的にインポートし、メソッド名を補完するときに括弧を追加し、タイプに応じて変数と...

コードの書式設定ルールの管理と適用

コードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。多数のReSharperコードフォーマットルールには、デフォルトのVisual Studioフォーマットオプションと多数のベ...

一致する区切り文字を強調表示する

エディターでコードを操作する場合、ReSharperは、ペアでキャレットを設定するときに開始または終了の区切り文字(,,および)を強調表示することにより、コード構造をすばやく理解できます。キャレットを対応する終了デリミタに配置すると、左括弧、括弧、ブレースまたは引用符(「デリミタ」と呼ばれる)を色ま...

ソースコードの注釈

ReSharperのコード注釈の恩恵を受ける最も簡単な方法は、ソースコードのシンボルに注釈属性を追加し、ReSharperがソリューションをより正確かつ洞察力で分析できるようにすることです。デフォルトでは、すべての注釈属性クラスは属性でマークされているため、コンパイラはコード内の属性の使用を無視しま...

nullチェックルーチンの生成

ReSharperには、値型のパラメータ、式、およびnullの変数をチェックするコードを生成するためのさまざまな方法が用意されています。目的に応じて、nullチェックルーチンは2つのカテゴリに分けられます:nullは例外とアサーションをチェックする、null値を持つオブジェクトをスキップするためのn...

コード補完でのフィルタの使用

ReSharperを使用すると、シンボルの種類、アクセス修飾子などを使用して補完候補をフィルタ処理できます。コード補完が呼び出されるたびに適用されたフィルタのセットを変更したり、フィルタの状態を保持することを選択したりできます。デフォルトでは、ReSharperは完了のポップアップの下部にフィルター...