| 財産 | 価値 |
|---|---|
| ルール識別子 | IDE0043 |
| タイトル | 書式指定文字列が無効です |
| Category | Style |
| サブカテゴリー | 言語規則 (文字列操作) |
| 該当する言語 | C# と Visual Basic |
| Options | なし |
Overview
このルールは、 String.Formatなどの複合書式指定メソッドの呼び出しにフラグを設定します。書式指定文字列内のプレースホルダー インデックスは、存在しない引数を参照します。 たとえば、書式指定文字列に {1} が含まれているが、引数が 1 つだけ指定されている場合 ( {0}としてアクセス可能)、ルールは {1} プレースホルダーにフラグを設定します。
注
この規則は、形式文字列引数も検証するコード品質規則 CA2241 に似ています。
Example
// Code with violations.
// '{1}' is out of range — only one argument is provided.
string s = string.Format("Hello, {0}! You have {1} messages.", "Alice");
// Fixed code.
string s = string.Format("Hello, {0}! You have {1} messages.", "Alice", 5);
' Code with violations.
' '{1}' is out of range — only one argument is provided.
Dim s As String = String.Format("Hello, {0}! You have {1} messages.", "Alice")
' Fixed code.
Dim s As String = String.Format("Hello, {0}! You have {1} messages.", "Alice", 5)
警告を抑制する
1 つの違反のみを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、ルールを再度有効にします。
#pragma warning disable IDE0043
// The code that's violating the rule is on this line.
#pragma warning restore IDE0043
ファイル、フォルダー、またはプロジェクトのルールを無効にするには、noneでその重要度をに設定します。
[*.{cs,vb}]
dotnet_diagnostic.IDE0043.severity = none
すべてのコード スタイル規則を無効にするには、Styleでカテゴリ none の重要度を に設定してください。
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
詳細については、「 コード分析の警告を抑制する方法」を参照してください。
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET