後置テンプレート
後置テンプレートを使うと、すでに入力した式を戻らずに変換できます。式の後にドットを入力し、 補完リストからテンプレートを選択します。
後置テンプレートを適用する
後置テンプレートの最も簡単な例の 1 つは、ブール式を否定することです。 ブール式をタイプしただけで、比較ロジックを元に戻す必要があると考えたとします。 通常はキャレットを戻し、 == を != に変更するか、逆にしてから元の場所に戻す必要があります。 JetBrains Rider を使うと、 .not の入力をそのまま続けて
Enter
を押すだけです。
コーディングを高速化するために使用できる より多くの後置テンプレートがあります。 例: 現在の式を if、 while、 lock、 using でラップしたり、現在の式の前に return、 yield return、 await を追加したり、コレクションを反復したり、switch ステートメントを生成したり、式を特定の型にキャストしたり、式のフィールドやプロパティを導入したりできます。
後置テンプレートは、入力ルーチンを変更することさえできます。 以下の CheckInput メソッドを考えて、null チェック節をどのように入力するかを想像してください。
後置テンプレートを使ってそれをどうやってやることができるかを見てみましょう。
キャレットがメソッド本体にある状態ですぐに input を入力し始めることができます。これが検証したい内容だからです。 input がある状態で、そのまま .null を入力してください。これは null をチェックするための後置テンプレートです:

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

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

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

頻繁に使用される言語構造を手動で入力するのではなく、多くの場合、テンプレートショートカットの最初の文字を 2 文字だけ入力して、適切にフォーマットされ、すべてのものを適切な形で入力することができます。
後置テンプレートを適用する
現在の式の後にドットを入力し、目的のテンプレートの補完リストを確認します。
適用しようとしているテンプレートのショートカットを知っているなら、それをタイプし始めましょう - これは提案のリストを縮小するでしょう。
候補リストで目的のテンプレートが選択されたら、すぐに Enter を押します。
テンプレートに 編集可能なパラメーターがある場合(つまり、ユーザー入力が必要な場合)、JetBrains Rider はエディターで ホットスポットセッションを展開し、最初のパラメーターに入力位置を設定します。 次に下記のことを実行できます。
JetBrains Rider が現在のパラメーターにいくつかの値を提案している場合は、 アップショートカット と ダウンショートカット の方向キーを使って候補リストを移動するか、希望する値を入力してください。
Tab または Enter を押して値を確定し、次のパラメーターの入力位置に移動します。 これが最後のパラメーターである場合、ホットスポットセッションは完了し、キャレットはセッション用に定義された終了位置に移動します。
Shift+Tab を押すと、入力フォーカスが前のパラメーターの入力位置に移動します。
Esc を押してホットスポットセッションを終了します。 この場合、すべてのセッションパラメーターはデフォルト値で初期化されます。
後置テンプレートのリスト
ショートカット | 説明 | サンプル |
|---|---|---|
.arg | 呼び出しによる式の囲み |
|
.await | 'タスク' タイプの表現を待ちます |
|
.キャスト | キャストで表現を囲む |
|
.else | ブール式を 'false' にチェックします。 |
|
.field | 表現の場を紹介する |
|
.for | コレクションをインデックスで繰り返し処理する |
|
.foreach | 列挙可能なコレクションを繰り返し処理する |
|
.forr | インデックスを逆にしてコレクションを反復処理する |
|
.if | ブール式を 'true' にチェックします。 |
|
.inject | 型のプライマリコンストラクターパラメーターを導入します |
|
.lock | ロックブロックで表現を囲む |
|
.new | 型のインスタンス化式を生成する |
|
.not | ブール式を否定します |
|
.notnull | 式が null でないことをチェックします |
|
.null | 式を null にチェックします |
|
.par | 現在の式を括弧で囲みます |
|
.parse | 文字列をある型の値として解析します |
|
.prop | 表現のための特性を導入する |
|
.return | 現在の関数から式を返す |
|
.sel | エディターで式を選択します |
|
.switch | switch 文を生成する |
|
.throw | '例外' 型の式をスローします |
|
.to | 現在の式を変数に代入する |
|
.tryparse | 文字列をある型の値として解析します |
|
.typeof | typeof() 式で型の使用をラップします |
|
.using | ステートメントを使用してリソースをラップする |
|
.var | 式の変数を導入する |
|
.while | ブールステートメントが '真' である間、反復する |
|
.yield | イテレータメソッドの値を返します |
|
ショートカット | 説明 | サンプル |
|---|---|---|
.beg..end | 範囲からイテレータを生成する |
|
.キャスト | 式を UE キャストで囲みます |
|
.cbeg..cend | 範囲からイテレータを生成する |
|
.co_await | co_await に引数として式を渡します |
|
.co_return | 現在のコルーチンから式を返します |
|
.co_yield | co_yield に引数として式を渡します |
|
.const_cast | const_cast で式を囲む |
|
.do | ブール式が '偽' になるまで反復する |
|
.dynamic_cast | dynamic_cast で表現を囲む |
|
.else | ブール式を 'false' にチェックします。 |
|
.foreach | 範囲を反復する |
|
.forward | Forwards 関数パラメーター |
|
.if | ブール式を 'true' にチェックします。 |
|
.make_shared | オブジェクトを構築し、std::shared_ptr にラップします。 |
|
.make_unique | オブジェクトを構築し、std::unique_ptr にラップします。 |
|
.new | 型のインスタンス化式を生成する |
|
.reinterpret_cast | reinterpret_cast で式を囲む |
|
.return | 現在の関数から式を返す |
|
.safe_cast | safe_cast で式を囲む (C++/CLI) |
|
.static_cast | static_cast で式を囲む |
|
.switch | 積分 / 列挙型よりもスイッチを生成する |
|
.var | 式の変数を導入する |
|
.while | ブール式が真である間、反復する |
|