Ongeldige notatietekenreeks (IDE0043)

Property Value
Regel-ID IDE0043
Title Ongeldige notatietekenreeks
Categorie Style
Subcategorie Taalregels (tekenreeksbewerkingen)
Toepasselijke talen C# en Visual Basic
Options Geen

Overview

Deze regel markeert aanroepen van samengestelde opmaakmethoden, zoals String.Format, waarbij een tijdelijke aanduidingsindex in de notatietekenreeks verwijst naar een argument dat niet bestaat. Als de indelingsreeks bijvoorbeeld {1} bevat, maar er slechts één argument wordt opgegeven (beschikbaar als {0}), markeert de regel de plaatshouder {1}.

Note

Deze regel is vergelijkbaar met de codekwaliteitsregel CA2241, waarmee ook tekenreeksargumenten worden gevalideerd.

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)

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none in het configuratiebestand.

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

Als u alle regels voor de codestijl wilt uitschakelen, stelt u de ernst voor de categorie Style in op none in het configuratiebestand.

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

Zie Hoe u codeanalysewaarschuwingen kunt onderdrukken voor meer informatie.

Zie ook