Lägg till explicit typomvandling i foreach-loop (IDE0220)
Egenskap | Värde |
---|---|
Regel-ID | IDE0220 |
rubrik | Lägg till explicit gjutning |
kategori | Stil |
underkategori | Språkregler (inställningar på uttrycksnivå) |
Tillämpliga språk | C# |
alternativ | dotnet_style_prefer_foreach_explicit_cast_in_source |
Överblick
Den här regeln flaggar frånvaron av en explicit gjutning i en foreach
-loop när kompilatorn lägger till en dold gjutning. För generiska, eller starkt typade, samlingar kan man genom att tvinga en uttrycklig typkonvertering när kompilatorn skulle använda en dold typkonvertering upptäcka användningen av en felaktig typ i foreach
-uttrycket.
Alternativ
Alternativ anger det beteende som du vill att regeln ska framtvinga. Information om hur du konfigurerar alternativ finns i Alternativformat.
dotnet_style_prefer_foreach_explicit_cast_in_source
Egenskap | Värde | Beskrivning |
---|---|---|
Alternativnamn | dotnet_style_prefer_foreach_explicit_cast_in_source | |
Alternativvärden | always |
Föredrar explicita avgjutningar i källkoden. |
when_strongly_typed |
Föredra explicita typecasts för starkt typade (generiska) samlingar, men inte för äldre samlingstyper, såsom ArrayList. | |
standardalternativvärde | when_strongly_typed |
Exempel
// Code with violations.
var list = new List<object>();
foreach (string item in list) { }
// Fixed code.
var list = new List<object>();
foreach (string item in list.Cast<string>())
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 IDE0220
// The code that's violating the rule is on this line.
#pragma warning restore IDE0220
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.IDE0220.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.