Cadeia de caracteres de formato inválida (IDE0043)

Property Valor
ID da regra IDE0043
Título Cadeia de caracteres de formato inválida
Categoria Style
Subcategoria Regras de idioma (operações de cadeia de caracteres)
Idiomas aplicáveis C# e Visual Basic
Opções None

Visão geral

Esta regra sinaliza chamadas para métodos de formatação compostos, como String.Format, onde um índice de espaço reservado na string de formatação se refere a um argumento que não existe. Por exemplo, se a string de formatação contiver {1}, mas apenas um argumento for fornecido (acessível como {0}), a regra sinalizará o espaço reservado {1}.

Note

Essa regra é semelhante à regra de qualidade de código CA2241, que também valida argumentos de cadeia de caracteres 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 seu arquivo de origem para desabilitar a regra e, em seguida, habilitá-la novamente.

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

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade 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