| 财产 | Value |
|---|---|
| 规则 ID | IDE0043 |
| 标题 | 格式字符串无效 |
| Category | 样式 |
| 子类别 | 语言规则(字符串操作) |
| 适用的语言 | C# 和 Visual Basic |
| Options | 没有 |
概述
此规则标志调用复合格式设置方法,例如 String.Format,格式字符串中的占位符索引引用不存在的参数。 例如,如果格式字符串包含 {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)
禁止显示警告
如果只想抑制单个冲突,请将预处理器指令添加到源文件以禁用该规则,然后重新启用该规则。
#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
有关详细信息,请参阅 如何禁止显示代码分析警告。