Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver två relaterade regler, IDE0020 och IDE0038.
| Egenskap | Värde | 
|---|---|
| regel-ID | IDE0020 | 
| Rubrik | Använd mönstermatchning för att undvika iskontroll följt av en gjuten (med variabel) | 
| Kategori | Stil | 
| Underkategori | Språkregler (inställningar för mönstermatchning) | 
| Tillämpliga språk | C# | 
| alternativ | csharp_style_pattern_matching_over_is_with_cast_check | 
| Egenskap | Värde | 
|---|---|
| Regel-ID | IDE0038 | 
| rubrik | Använd mönstermatchning för att undvika is-kontroll följt av en typkonvertering utan att använda en variabel | 
| Kategori | Stil | 
| underkategori | Språkregler (inställningar för mönstermatchning) | 
| Tillämpliga språk | C# | 
| alternativ | csharp_style_pattern_matching_over_is_with_cast_check | 
Överblick
Den här stilregeln gäller användningen av C# mönstermatchning, till exempel o is int i, över en is-kontroll följt av en typomvandling, till exempel if (o is int) { ... (int)o ... }. Aktivera antingen IDE0020 eller IDE0038 baserat på om det gjutna uttrycket ska sparas i en separat lokal variabel eller inte:
- 
              IDE0020: Cast-uttrycket sparas i en lokal variabel. Till exempel spararif (o is int) { var i = (int)o; }resultatet av(int)oi en lokal variabel.
- 
              IDE0038: Cast-uttryck sparas inte i en lokal variabel. Till exempel spararif (o is int) { if ((int)o == 1) { ... } }inte resultatet av(int)oi en lokal variabel.
Alternativ
Ange värdet för det associerade alternativet för den här regeln för att ange om mönstermatchning eller is kontroll följt av en typgjutning är att föredra.
Mer information om hur du konfigurerar alternativ finns i Alternativformat.
csharp_style_pattern_matching_over_is_with_cast_check
| Egenskap | Värde | Beskrivning | 
|---|---|---|
| Alternativnamn | csharp_stil_mönstermatchning_över_är_med_gjutningskontroll | |
| Alternativvärden | true | Föredrar mönstermatchning i stället för isuttryck med typgjutningar. | 
| false | Inaktiverar regeln. | |
| standardalternativvärde | true | 
// csharp_style_pattern_matching_over_is_with_cast_check = true
if (o is int i) {...}
// csharp_style_pattern_matching_over_is_with_cast_check = false
if (o is int) {var i = (int)o; ... }
Ignorera 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 IDE0020 // Or IDE0038
// The code that's violating the rule is on this line.
#pragma warning restore IDE0020 // Or IDE0038
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.IDE0020.severity = none
dotnet_diagnostic.IDE0038.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.