ReSharper 2019.3ヘルプ

後置テンプレート

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

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

後置テンプレートの最も簡単な例の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. 現在の状況によっては、いくつかの後置テンプレートが補完リストに含まれていないかもしれません。目的のテンプレートが表示されていなくても使用したい場合は、Ctrl+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|
.switch

switch文を生成する

switch (expr)
.throw

'例外'型の式をスローする

throw expr;
.to

現在の式を変数に代入する

lvalue = expr;
.tryparse

文字列をある型の値として解析する

int.TryParse(expr, out value)
.typeof

typeof()式で型の使用をラップする

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_cast

const_castで式を囲む

const_cast<SomeType &>(expr)
.do

ブール式が '偽'になるまで反復する

do { } while (expr);
.dynamic_cast

dynamic_castで表現を囲む

dynamic_cast<SomeType &>(expr)
.else

ブール式を 'false' にチェックします。

if (!expr)
.foreach

範囲を反復する

foreach (auto && x in range)
.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_cast

reinterpret_castで式を囲む

reinterpret_cast<SomeType &>(expr)
.return

現在の関数から式を返す

return expr;
.safe_cast

safe_castで式を囲む (C++/CLI)

safe_cast<SomeType>(expr)
.static_cast

static_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 availableFeature is not availableFeature is availableFeature is not availableFeature is not availableFeature is not availableFeature is availableFeature is availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not availableFeature is not available
最終更新日: 2019年12月12日

関連ページ:

ソース・テンプレート

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

ダブル補完

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

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

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

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

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

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

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

異なる言語でのReSharperの機能

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