JetBrains Rider 2020.2ヘルプ

文字列リテラルのコード解析とヘルパー

JetBrains Riderは、コード内の文字列リテラルに一連の機能を提供します。JetBrains Riderのコード解析と多数のヘルパーの恩恵を受ける:

平紐

コードに平易な文字列を使って作業しているときに、JetBrains Riderがどのように役立つのかを以下に示します。

  • デフォルトでは、JetBrains Riderは、すべての非そのままの文字列の正しいエスケープシーケンスと誤ったエスケープシーケンスを強調表示します。

    Highlighting of escape sequence in a string
  • キャレットが文字列内にあるときに Alt+Enter を押し、対応するコンテキストアクションを選択することで、通常の文字列を逐語的な文字列に変換したり、元に戻したりできます。これは、補間された文字列でも機能します。

  • Enterを押すだけで、文字列リテラル分割できます。

  • 文字列に正規表現が含まれている場合、JetBrains Riderはその構文とエラーを強調表示し、式内のコード補完を支援します。詳細については、正規表現のアシスタンスを参照してください。
    同様に、JetBrains RiderにHTMLを文字列リテラルで分析させることができます。JetBrains Riderに文字列リテラル内の特定の言語を認識させるには、対応するコンテキストアクションを使用するか、文字列リテラルの直前にコメント /*language=regexp|jsregexp|html*/ を追加します。

  • 文字列内の一部の部分文字列を選択して、部分文字列の変数を自動的に導入できます。

  • プロジェクトがローカライズ可能であれば、自動的に文字列をresourceに移動できます。

文字列の書式設定メソッド

JetBrains Riderは、String.Format , Text.StringBuilder.AppendFormatConsole.WriteLineなど、すべての.NETストリングフォーマット方式のフォーマットストリングと引数を分析します。

文字列書式設定の使い方では、JetBrains Riderはフォーマットのプレースホルダを強調表示し、キャレットがそのいずれかにあるときにプレースホルダと対応する引数を同期的に強調表示します。

Highlighting of arguments and placeholders in string formatting methods

引数とフォーマットプレースホルダが一致しない場合(引数がない場合は実行時に FormatException が発生します)、JetBrains Riderは欠落しているか重複している引数について警告を生成します。

Warning for missing arguments in string formatting methods

警告よりも Alt+Enter を押すと、この問題を簡単に修正できます。JetBrains Riderは、不足している引数を自動的に追加するか、不一致のフォーマットプレースホルダを削除するかのいずれかを提案します。

JetBrains Riderは、他の文字列書式設定メソッド内で文字列書式設定メソッドの冗長な呼び出しを検出して削除するのにも役立ちます。例:

Redundant call to string formatting method

文字列リテラルと変数の連結をすばやく変換するには、連結内の任意の場所で Alt+Enter を押して、To String.Formatの呼び出し コンテキストアクションを使用します。例:このコンテキストアクションを次のメソッドの return ステートメントに適用する

public string Greet(string name, int age) { return "Hi, my name is " + name + " and I'm " + age; }

それは次のように変換されます:

public string Greet(string name, int age) { return String.Format("Hi, my name is {0} and I'm {1}", name, age); }

また、コンテキストアクションを使用して、文字列の書式プレースホルダと引数を自動的に追加または削除することもできます。文字列リテラル内でフォーマット引数を挿入するアクションを呼び出すと、JetBrains Riderは適切なインデックスを持つ新しいプレースホルダを挿入し、すぐに引数の入力を開始できる位置に移動します。このアクションはプレーンな文字列でも呼び出すことができます。この場合、JetBrains Riderは自動的に String.Format コールに変換します。

対応する引数と共にフォーマットプレースホルダをすばやく削除するには、プレースホルダでキャレットを設定し、Alt+Enter を押してフォーマット引数を削除するを選択します。

カスタム文字列書式設定メソッド

カスタム文字列フォーマットメソッドが表示されたら、JetBrains Riderにそのように解釈するように指示する必要があります。これは非常に簡単です。JetBrains.Annotations名前空間[StringFormatMethodAttribute] でメソッドを装飾する必要があります。メソッドにこの属性が設定されるとすぐに、標準の書式設定メソッドで使用できるすべての機能を利用できます

カスタム文字列書式設定メソッド ShowErrorを考えてみましょう。

public void ShowError(string formatString, params object[] args) { // some custom logic Console.WriteLine(formatString, args); }

以下に示すようにメソッドが誤って呼び出された場合、JetBrains Riderは欠落している引数を検出する機会がありません。

String formatting method called incorrectly

JetBrains Riderにカスタム文字列フォーマット方法を認識させる

  1. JetBrains.Annotations 名前空間を参照するには、ソースコードの注釈セクションを参照してください。

  2. [StringFormatMethodAttribute] 属性を使用して、カスタム文字列書式設定メソッドに注釈を付けます。これは、単一の引数、つまり書式文字列パラメータの名前をとります。

    [StringFormatMethod("formatString")] public void ShowError(string formatString, params object[] args) { // some custom logic Console.WriteLine(formatString, args); }

JetBrains Riderは、このカスタム書式設定メソッドが呼び出されたときに引数の欠落について警告することができるようになりました。さらに、引数の追加 クイックフィックスを使用すると、挿入が簡単になります。

Quick-fix for the string formatting method call

補間された文字列

プロジェクトでC# 6.0を使用している場合は、String.Format メソッドの代わりに補間文字列(英語)を使用できます。

By default, JetBrains Rider automatically detects C# version based on the associated compiler. However, you can specify the target C# version explicitly — press Alt+Enter on the project in the Solution Explorer and use the 言語バージョン selector on the アプリケーション page of the プロジェクト・プロパティ dialog .

C# 6.0プロジェクトでは、JetBrains Riderが String.Format の使用箇所を強調し、補間ストリングに変換することを提案します。クイックフィックスを使用して、現在の使用箇所または特定の範囲内のすべての使用箇所を 2、3のキーストロークで変換できます。

JetBrains Rider: Converting a usage of String.Format into string interpolation

補間された文字列に式が含まれていない場合、JetBrains Riderは $ 記号を重複して強調表示し、削除できます。

JetBrains Rider: Converting string interpolation without parameters into string literal

文字列を入力するとき、文字列の先頭に $ をすばやく追加する必要がある場合は、Alt+Enter を押して文字列補間を選択できます。
次に、補間された引数を挿入するを選択して、JetBrains Riderがキャレット位置に引数プレースホルダー { } を追加することもできます。

JetBrains Rider: Converting simple string to string interpolation
最終更新日:

関連ページ:

コンテキスト・アクション

コンテキストアクションは、エディターで直接利用できるコード変換ヘルパーです。クイックフィックスとは対照的に、コンテキストアクションは問題の解決やコードの改善を目的としているためはなく、アクセス修飾子の変更、null をチェックするコードの生成、'foreach' の 'for' への変換などの小...

文字列リテラルを含む行の分割

長い文字列リテラルを入力すると、JetBrains Riderは行を分割し、必要な引用符とプラス記号を追加できます。キャレットは文字列リテラル内にありますEnterを押すと、コードの構文が壊れないように文字列が正しく分割されます。これで、記号を削除すると、文字列部分が冗長引用符なしで一緒に戻ります。...

正規表現のアシスタンス

JetBrains Riderは、.NETの正規表現で作業するための豊富なツールセットを提供します。既存の式をすばやく分析し、エラーを見つけて修正できます。新しい式を入力する際、JetBrains Riderは自動補完と検証に役立ちます。文字列リテラルの正規表現:デフォルトでは、JetBrains

サブストリングのリファクタリングのための変数の導入

このリファクタリングにより、文字列の一部を別の変数にすばやく移動できます。初期文字列は、型メンバーの割り当てであってはならないことに注意してください。リファクタリングはローカル変数を作成するため、ステートメントが許可されている場合にのみ機能します。ターゲットC#バージョンに応じて、JetBrains...

注釈を使用してコードインスペクションを調整する

コード検査などのJetBrains Riderの多くの機能は、課題を検出し、改善を提案し、他の方法でお手伝いするために、言語構成の動作を知ることに大きく依存しています。しかし、この種の分析ではすべてを検出することはできません。例:メソッドがを返さないように設計されており、そのクライアントがそれに応じ...

ソースコードの注釈

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