ReSharper 2020.2ヘルプ

後置テンプレート

後置テンプレートは後ろにジャンプすることなくすでにタイプした式を変換できます - ちょうど式の後にドットをタイプしそして補完リストからテンプレートを選んでください。

後置テンプレートを適用する

後置テンプレートの最も簡単な例の1つは、ブール式を否定することです。ブール式をタイプしただけで、比較ロジックを逆にする必要があることに気が付いたとします。通常、キャレットを元の位置に戻し、==!= に、または !=!= に変更してから、元の場所に戻ってください。ReSharperでは、.not の入力を続けて Enterを押すことができます。

コーディングを高速化するために使用できるより多くの後置テンプレートがあります。例:現在の式を if , while , lock , usingでラップしたり、現在の式の前に return , yield return , await を追加したり、コレクションを反復したり、switchステートメントを生成したり、式を特定の型にキャストしたり、式のフィールドやプロパティを導入したりできます。

後置テンプレートは、入力ルーチンを変更することさえできます。以下の CheckInput メソッドを考えて、nullチェック節をどのように入力するかを想像してください。

private void CheckInput(string input) { if (input == null) { throw new ArgumentNullException("The input is null"); } // do something with 'input' }

後置テンプレートを使ってそれをどうやってやることができるかを見てみましょう。

メソッド本体にキャレットがあるとすぐに、input の入力をすぐに開始することができます。これは、これを確認したいからです。 input があるときは、nullの式をチェックするための後置テンプレートである .null を続けて入力してください:

Applying postfix template for null-check

これにより、inputnull が比較され、その比較が if ステートメントでラップされ、入力を継続できる位置にキャレットが設定されます。

Applying postfix template for null-check

今度は、throwと入力する代わりに、例外クラス名を入力して .throw テンプレートを呼び出してください。

Applying postfix template for null-check

このテンプレートを適用すると、完全な throw ステートメントと、引数を入力する場所にキャレットが表示されます。

Applying postfix template for null-check

頻繁に使用される言語構造を手動で入力するのではなく、多くの場合、テンプレートショートカットの最初の文字を2文字だけ入力して、適切にフォーマットされ、すべてのものを適切な形で入力することができます。

後置テンプレートを適用する

  1. 現在の式の後にドットを入力し、目的のテンプレートの補完リストを確認します。

  2. 適用しようとしているテンプレートのショートカットを知っているなら、それをタイプし始めましょう - これは提案のリストを縮小するでしょう。

  3. 現在の状況によっては、いくつかの後置テンプレートが補完リストに含まれていないかもしれません。目的のテンプレートが表示されていなくても使用したい場合は、Control+Space2回押してすべてのテンプレートを補完リストに表示します。

  4. 候補リストで目的のテンプレートが選択されるとすぐに Enterを押します。

  5. テンプレートに編集可能なパラメーターがある場合(つまり、ユーザー入力が必要な場合)、ReSharperはホットスポットセッションをエディターにデプロイし、最初のパラメーターに入力位置を設定します。次に、次の操作を実行できます。
    • ReSharperが現在のパラメータの値を提案している場合は、UpDown の矢印キーを使用して推奨値のリストをナビゲートするか、目的の値を入力してください。

    • Tab または Enter を押して値を受け入れ、次のパラメータの入力位置に移動します。これが最後のパラメータである場合、ホットスポットセッションは完了し、キャレットはセッション用に定義された終了位置に移動します。

    • Shift+Tab を押すと、入力フォーカスが前のパラメータの入力位置に移動します。

    • Esc を押してホットスポットセッションを終了します。この場合、すべてのセッションパラメータはデフォルト値で初期化されます。

後置テンプレートを構成する

後置テンプレートはデフォルトで有効になっています。次の場合に補完リストに表示されます。

  • ReSharper IntelliSenseは、ReSharperオプション(Alt+R O)の環境 | IntelliSense | 一般ページで有効になっています。

  • 後置テンプレートを表示するは、ReSharperオプション(Alt+R O)のコード編集 | 後置テンプレートページで選択されます。

特定の接尾辞テンプレートを無効にするには、ReSharperオプション(Alt+R O)のコード編集 | 後置テンプレートページで対応するチェックボックスをオフにします。

補完リストでテンプレートを非表示にしたり、逆に他のすべてのアイテムを非表示にしたりするには、完了フィルターを使用します。

後置テンプレートのリスト

ショートカット説明サンプル
.arg呼び出しによる式の囲みMethod(expr)
.await'タスク'タイプの表現を待ちますawait expr
.castキャストで表現を囲む((SomeType) expr)
.elseブール式を 'false' にチェックします。if (!expr)
.field表現の場を紹介する_field = expr;
.forコレクションをインデックスで繰り返し処理するfor (var i = 0; i < xs.Length; i++)
.foreach列挙可能なコレクションを繰り返し処理するforeach (var x in expr)
.forrインデックスを逆にしてコレクションを反復処理するfor (var i = xs.Length-1; i >= 0; i--)
.ifブール式を 'true' にチェックします。if (expr)
.lockロックブロックで表現を囲むlock (expr)
.new型のインスタンス化式を生成するnew SomeType()
.notブール式を否定する!expr
.notnull式がnullでないことをチェックするif (expr != null)
.null式をnullにチェックするif (expr == null)
.par現在の式を括弧で囲みます(expr)
.parse文字列をある型の値として解析するint.Parse(expr)
.prop表現のための特性を導入するProperty = expr;
.return現在の関数から式を返すreturn expr;
.selエディターで式を選択する|selected + expression|
.switchswitch文を生成するswitch (expr)
.throw'例外'型の式をスローするthrow expr;
.to現在の式を変数に代入するlvalue = expr;
.tryparse文字列をある型の値として解析するint.TryParse(expr, out value)
.typeoftypeof()式で型の使用をラップするtypeof(TExpr)
.usingステートメントを使用してリソースをラップするusing (expr)
.var式の変数を導入するvar x = expr;
.whileブールステートメントが '真'である間、反復するwhile (expr)
.yieldイテレータメソッドの値を返しますyield return expr;
ショートカット説明サンプル
.elseブール式を 'false' にチェックします。if (!expr)
.forof反復可能なオブジェクトを反復処理するfor (let x of expr)
.ifブール式を 'true' にチェックします。if (expr)
.notnull式がnullでないことをチェックするif (expr !== null)
.notundefined式が未定義であることをチェックするif (expr !== undefined)
.null式をnullにチェックするif (expr === null)
.return現在の関数から式を返すreturn expr;
.undefined定義されていない式をチェックするif (expr === undefined)
.var式の変数を導入するvar x = expr;
ショートカット説明サンプル
.elseブール式を 'false' にチェックします。if (!expr)
.forof反復可能なオブジェクトを反復処理するfor (let x of expr)
.ifブール式を 'true' にチェックします。if (expr)
.instanceof式のインスタンスをチェックするif (x instanceof Class)
.notnull式がnullでないことをチェックするif (expr !== null)
.notundefined式が未定義であることをチェックするif (expr !== undefined)
.null式をnullにチェックするif (expr === null)
.return現在の関数から式を返すreturn expr;
.typeof式のタイプをチェックするif (typeof x === 'string')
.undefined定義されていない式をチェックするif (expr === undefined)
.var式の変数を導入するlet x = expr;
ショートカット説明サンプル
.beg..end範囲からイテレータを生成するsort(range.begin(), range.end())
.cbeg..cend範囲からイテレータを生成するis_sorted(range.cbegin(), range.cend())
.const_castconst_castで式を囲むconst_cast<SomeType &>(expr)
.doブール式が '偽'になるまで反復するdo { } while (expr);
.dynamic_castdynamic_castで表現を囲むdynamic_cast<SomeType &>(expr)
.elseブール式を 'false' にチェックします。if (!expr)
.foreach範囲を反復するforeach (auto && x in range)
.forwardForwards関数パラメーターstd::forward<Arg>(arg)
.ifブール式を 'true' にチェックします。if (expr)
.make_sharedオブジェクトを構築し、std::shared_ptrにラップします。std::make_shared<SomeType>()
.make_uniqueオブジェクトを構築し、std::unique_ptrにラップします。std::make_unique<SomeType>()
.new型のインスタンス化式を生成するnew SomeType()
.reinterpret_castreinterpret_castで式を囲むreinterpret_cast<SomeType &>(expr)
.return現在の関数から式を返すreturn expr;
.safe_castsafe_castで式を囲む (C++/CLI)safe_cast<SomeType>(expr)
.static_caststatic_castで式を囲むstatic_cast<SomeType>(expr)
.switch積分/列挙型よりもスイッチを生成するswitch (expr)
.var式の変数を導入するauto x = expr;
.whileブール式が真である間、反復するwhile (expr)

この機能は、次の言語とテクノロジーでサポートされています。

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is available in C#Feature is not available in Visual Basic .NETFeature is available in C++Feature is not available in HTMLFeature is not available in ASP.NETFeature is not available in RazorFeature is available in JavaScriptFeature is available in TypeScriptFeature is not available in CSSFeature is not available in XMLFeature is not available in XAMLFeature is not available in Resource filesFeature is not available in build script filesFeature is not available in ProtobufFeature is not available in JSON
最終更新日: 2020年5月26日

関連ページ:

ソース・テンプレート

伝統的に、テンプレートやスニペットはあなたのソースコードの外で保存され管理されています。通常テンプレートを使用すると、普遍的な定型コードをすばやく作成できるため、これは理にかなっています。これらの目的のために、ReSharperは多くの定義済みライブテンプレート、サラウンドテンプレート、ファイルテン...

ダブル補完

すべてのReSharperの補完ショートカットは、複数回連続して押すことができます。この場合、ReSharperはさらに補完リストに提案を加えます。新しい提案には緑色の縦線が付いているため、簡単に見つけることができます。必要に応じて、ReSharperオプション(Alt+R O)の環境 | Inte...

テンプレート・パラメーター

コードテンプレートの本体には、次のものが含まれます。ソースコードの構造とコメントを表すプレーンテキスト。テンプレートを適用するとそのまま挿入されます。テンプレートを適用すると動的に置き換えられるテンプレートパラメータ。テンプレートパラメータの形式は次のとおりです。-は任意の識別子です。形式が正しい場...

ホットスポットセッション

ReSharperの多くの機能は、エディターでコードのブロックを挿入または置換します。このブロックを完了するためにユーザー入力が必要な場合、これらの機能は多くの場合インタラクティブに機能するため、ReSharperはコードブロックの挿入直後に利用可能なすべての提案と変更をガイドします。これが発生する...

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

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

異なる言語でのReSharperの機能

以下の表は、各ReSharper機能がサポートされている言語/技術を説明しています。言語固有の機能のみを一覧表示し、プロジェクト依存関係図、名前空間の調整リファクタリング、スタックトレースエクスプローラー、最近のファイルを見るなどのプロジェクト/ソリューションのスコープには多くの機能は含まれていませ...