Ogiltig formatsträng (IDE0043)

Property Value
Regel-ID IDE0043
Title Ogiltig formatsträng
Kategori Style
Underkategori Språkregler (strängåtgärder)
Tillämpliga språk C# och Visual Basic
Options Ingen

Översikt

Den här regeln flaggar anrop till sammansatta formateringsmetoder, till exempel String.Format, där ett platshållarindex i formatsträngen refererar till ett argument som inte finns. Om formatsträngen till exempel innehåller {1} men bara ett argument anges (tillgängligt som {0}), flaggar {1} regeln platshållaren.

Anmärkning

Den här regeln liknar kodkvalitetsregeln CA2241, som även validerar formatsträngsargument.

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)

Undertryck en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan regeln.

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

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

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

Om du vill inaktivera alla regler i kodformat anger du allvarlighetsgraden för kategorin Style till none i konfigurationsfilen.

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även