JetBrains Fleet 1.48 ヘルプ

C# 文字列リテラルのコード分析

システム文字列のフォーマット方法

JetBrains Fleet は、String.FormatText.StringBuilder.AppendFormatConsole.WriteLine などのすべての .NET 文字列フォーマットメソッドの書式文字列と引数を分析します。

文字列フォーマットメソッドの使用では、JetBrains Fleet は書式プレースホルダーをハイライトし、キャレットが次のいずれかにあるときに、対応する引数を持つプレースホルダーを同期的にハイライトします。

Highlighting of arguments and placeholders in string formatting methods

引数と形式プレースホルダーが一致しない場合 (引数が欠落していると実行時に FormatException が発生します)、JetBrains Fleet は欠落または冗長な引数について警告を生成します。

Warning for missing arguments in string formatting methods

この問題は、警告の上で⌥⏎を押すことで簡単に解決できます。JetBrains Fleet を押すと、不足している引数を自動的に追加するか、一致しない形式のプレースホルダーを削除するかを提案します。

JetBrains Fleet は、他の文字列フォーマットメソッド内の文字列フォーマットメソッドの冗長な呼び出しを検出して削除するのにも役立ちます。例:

Redundant call to string formatting method

カスタム文字列フォーマットメソッドの場合

カスタム文字列フォーマットメソッドでコード分析および支援機能を有効にするには、JetBrains.Annotations 名前空間[StringFormatMethod] および [StructuredMessageTemplate] 属性を使用します。

カスタム文字列フォーマットメソッド ShowError を考えてみましょう。

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

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

String formatting method called incorrectly

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

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

  2. カスタム文字列フォーマットメソッドに [StringFormatMethodAttribute] 属性のアノテーションを付けます。これは 1 つの引数 (書式文字列パラメーターの名前) を受け取ります。

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

    JetBrains Fleet は、このカスタムフォーマットメソッドが呼び出されたときに引数が欠落していることを警告できます。

    Quick-fix for the string formatting method call
  3. あるいは、フォーマットされた文字列を受け入れるパラメーターに [StructuredMessageTemplateAttribute] のアノテーションを付けます。

    void LogNewUser([StructuredMessageTemplate] string message, params string[] args) { // Log new user } void Test() { // Warning: Non-existing argument in format string LogNewUser("User created: {username}"); }

    この 2 番目のアプローチでは、上の例の username のように、カスタム文字列をプレースホルダーとして使用できます。

補間された文字列

C# の最新バージョンでは、String.Format メソッドに代わるよりエレガントな代替手段である補間文字列が提供されます。JetBrains Fleet が String.Format の使用箇所を強調し、補間文字列に変換することを提案しているのはそのためです。クイックフィックスを使用すると、数回のキーストロークで変換を適用できます。

JetBrains Fleet: Converting a usage of String.Format to string interpolation

文字列の入力に没頭しているときに、文字列の先頭に $ をすばやく追加する必要がある場合は、⌥⏎を押して文字列補間を選択できます。

JetBrains Fleet: Converting simple string to string interpolation
2025 年 5 月 15 日

関連ページ:

スマートモード

JetBrains Fleet は、軽量テキストエディターとしても、インテリジェントなコードエディターとしても機能します。システムリソースを最適化するため、リソースを大量に消費する機能は必要な場合にのみ有効になります。スマートモードを有効にすると、個々のファイルまたは複数のファイルを含むフォルダーをシームレスに操作できます。スマートモードを有効にする右上隅にあるスマートモードのステータスアイコンをクリックします。表示されるポップアップで、「有効にする」をクリックします。必要なインデックス作成と準...

アノテーションを使用して C# のコードインスペクションを改善する

コード検査およびその他の多くの JetBrains Fleet 機能は、問題を検出し、改善の可能性を提案し、他の方法で役立つように、言語構造の動作を知ることに主に依存しています。ただし、この種の分析ではすべてを検出できるわけではありません。例: メソッドがフォーマットメソッドとして設計されている場合、メソッドの呼び出しに必要な引数が含まれていない場合、構造解析では潜在的な問題は見つかりません。このような場合や他の多くの場合、JetBrains Fleet のが非常に役立ちます。このフレームワーク...

C# でのコレクションアクセス分析

JetBrains Fleet は、コレクション項目の値を分析するだけでなく、使用する各コレクションも全体として分析します。このコレクションへの読み取りアクセスがある場合でも、コレクションが埋められたり変更されたりしない場合は、警告が表示されます。コレクションが決して読み込まれない場合すべての標準コレクションタイプは、デフォルトでこの方法で分析されます。必要に応じて、この分析をから派生するカスタムコレクションに適用することもできます。この場合、コレクションのパブリックメソッドの呼び出しがコレクシ...