JetBrains Rider 2024.3 ヘルプ

後置テンプレート

後置テンプレートを使用すると、前に戻ることなく、すでに入力した式を変換できます。式の後にドットを入力し、補完リストからテンプレートを選択するだけです。

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

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

コーディングを高速化するために使用できるより多くの後置テンプレートがあります。例: 現在の式を ifwhilelockusing でラップしたり、現在の式の前に returnyield returnawait を追加したり、コレクションを反復したり、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. 候補リストで目的のテンプレートが選択されるとすぐに Enter を押します。

  4. テンプレートに編集可能なパラメーターがある場合(つまり、ユーザー入力が必要な場合)、JetBrains Rider はエディターにホットスポットセッションをデプロイし、最初のパラメーターに入力位置を設定します。次に下記のことを実行できます。

    • JetBrains Rider が現在のパラメーターにいくつかの値を提案している場合は、UpDown の矢印キーを使用して推奨値のリストを移動するか、目的の値を入力してください。

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

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

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

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

ショートカット

説明

サンプル

.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;

ショートカット

説明

サンプル

.beg..end

範囲からイテレータを生成する

sort(range.begin(), range.end())

.Cast

式を UE キャストで囲みます

Cast<SomeType>(expr)

.cbeg..cend

範囲からイテレータを生成する

is_sorted(range.cbegin(), range.cend())

.co_await

co_await に引数として式を渡します

co_await expr

.co_return

現在のコルーチンから式を返します

co_return expr;

.co_yield

co_yield に引数として式を渡します

co_yield expr

.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

範囲を反復する

for (auto && x : range)

.forward

Forwards 関数パラメーター

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_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)