Недопустимая строка формата (IDE0043)

Property Value
Идентификатор правила IDE0043
Заголовок Недопустимая строка формата
Категория Style
Подкатегории Языковые правила (строковые операции)
Применимые языки C# и Visual Basic
Параметры Нет

Обзор

Это правило помечает вызовы методов составного форматирования, таких как 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

Чтобы отключить все правила стиля кода, задайте уровень серьезности для категории Stylenone в файле конфигурации.

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

Дополнительные сведения см. в разделе "Подавление предупреждений анализа кода".

См. также