コード検査: フォーマット文字列テンプレートではなく、おそらく意図しない文字列補間
次のコードは一見したところうまく見えますが、予想されるように Hello world!
ではなく Hello 0!
を返します。
何年もの間、文字列フォーマット方法(String.Format()
、Console.WriteLine()
など)は、ハードコードされた文字列リテラルを変数値と組み合わせるための私たちのお気に入りの方法でした。そのため、中括弧 {}
の数値は、最初の引数内で非常に自然に見えます。ただし、文字列のフォーマット方法を徐々に置き換える文字列補間表記では、ターゲット文字列に式を挿入するために中括弧も使用されます。上記の例では、$
で始まる最初の引数は補間された文字列として処理され、その後でのみフォーマットメソッドに渡されます。この時点で、{0}
プレースホルダーはすでに計算値、つまり 0
に置き換えられており、フォーマット方法は 2 番目の引数を無視します。
JetBrains Rider は最初の引数から $
プレフィックスを削除して、文字列のフォーマット方法が期待通りに機能するようにすることを提案します。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、JetBrains Rider はサポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかにかかわらず、コードインスペクションを特定の範囲でいつでも実行できます。「鉛筆」ウィジェットを使用して、エディターから直接インスペクション設定をすばやく調整するか、設定でより詳細な構成を行うことができます。を押すか、メニューから(W...
コード検査: リソースは特定の文化では上書きされません
カルチャ階層に編成されたカルチャがいくつかあり、デフォルトカルチャで宣言されているが他のカルチャでオーバーライドされていないリソースエントリがある場合、JetBrains Rider はリソースの名前をハイライトして対応するクイックフィックスを提案します。): クイックフィックスを適用すると、リソース宣言がカルチャ固有のリソースファイルに挿入され、そこで正しい値を指定できます。コード検査: リソースは同じ値で上書きされますコード検査: フォーマット文字列...