Cadeia de formato inválida (IDE0043)

Property Valor
ID da regra IDE0043
Title Cadeia de formato inválida
Category Style
Subcategoria Regras do idioma (operações de cadeia de caracteres)
Línguas aplicáveis C# e Visual Basic
Options None

Descrição geral

Esta regra sinaliza chamadas para métodos de formatação composta, como String.Format, onde um índice provisório na string de formato se refere a um argumento que não existe. Por exemplo, se a cadeia de formato contiver {1} mas apenas um argumento for fornecido (acessível como {0}), a regra sinaliza o marcador de posição {1}.

Note

Esta regra é semelhante à regra de qualidade do código CA2241, que também valida os argumentos da cadeia de formato.

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)

Suprimir um aviso

Se você quiser suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desativar e, em seguida, reativar a regra.

#pragma warning disable IDE0043
// The code that's violating the rule is on this line.
#pragma warning restore IDE0043

Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none no arquivo de configuração.

[*.{cs,vb}]
dotnet_diagnostic.IDE0043.severity = none

Para desabilitar todas as regras de estilo de código, defina a severidade da categoria Style como none no arquivo de configuração.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Para obter mais informações, consulte Como suprimir avisos de análise de código.

Consulte também