Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden twee gerelateerde regels beschreven, IDE0020 en IDE0038.
| Eigenschap | Waarde |
|---|---|
| regel-id | IDE0020 |
| titel | Gebruik patroonherkenning om controle op is te vermijden, gevolgd door een cast (met variabele). |
| Categorie | Stijl |
| Subcategorie | Taalregels (patroonkoppelingsvoorkeuren) |
| Toepasselijke talen | C# |
| Opties | csharp_style_pattern_matching_over_is_with_cast_check |
| Eigenschap | Waarde |
|---|---|
| Regel-ID | IDE0038 |
| titel | Gebruik patroonherkenning om een is-controle te vermijden, gevolgd door een cast zonder dat een variabele wordt gebruikt. |
| Categorie | Stijl |
| subcategorie | Taalregels (patroonkoppelingsvoorkeuren) |
| Toepasselijke talen | C# |
| opties | csharp_style_pattern_matching_over_is_with_cast_check |
Overzicht
Deze stijlregel betreft het gebruik van C# patroon dat overeenkomt met, bijvoorbeeld o is int i, over een is controle gevolgd door een cast, bijvoorbeeld if (o is int) { ... (int)o ... }. Schakel IDE0020 of IDE0038 in op basis van of de cast-expressie moet worden opgeslagen in een afzonderlijke lokale variabele:
-
IDE0020: Cast-expressie wordt opgeslagen in een lokale variabele.if (o is int) { var i = (int)o; }slaat bijvoorbeeld het resultaat van(int)oop in een lokale variabele. -
IDE0038: De cast-expressie wordt niet in een lokale variabele opgeslagen.if (o is int) { if ((int)o == 1) { ... } }slaat bijvoorbeeld het resultaat van(int)oniet op in een lokale variabele.
Opties
Stel de waarde van de gekoppelde optie voor deze regel in om op te geven of patroonvergelijking of is-controle gevolgd door een typecasting de voorkeur heeft.
Zie Option-indelingvoor meer informatie over het configureren van opties.
csharp_style_pattern_matching_over_is_with_cast_check
| Eigenschap | Waarde | Beschrijving |
|---|---|---|
| optie-naam | csharp_style_pattern_matching_over_is_with_cast_check | |
| optiewaarden | true |
Geef de voorkeur aan patroonkoppeling in plaats van is expressies met typecasts. |
false |
Hiermee schakelt u de regel uit. | |
| standaardoptiewaarde | 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; ... }
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 IDE0020 // Or IDE0038
// The code that's violating the rule is on this line.
#pragma warning restore IDE0020 // Or IDE0038
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.IDE0020.severity = none
dotnet_diagnostic.IDE0038.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
Voor meer informatie, zie Hoe u codeanalysewaarschuwingen onderdrukt.