Patroonkoppeling gebruiken om 'is'-controle te voorkomen, gevolgd door een cast (IDE0020 en IDE0038)
In dit artikel worden twee gerelateerde regels beschreven, IDE0020
en IDE0038
.
Eigenschappen | Weergegeven als |
---|---|
Regel-id | IDE0020 |
Titel | Patroonkoppeling gebruiken om controle te voorkomen is gevolgd door een cast (met variabele) |
Categorie | Stijl |
Subcategorie | Taalregels (patroonkoppelingsvoorkeuren) |
Toepasselijke talen | C# |
Opties | csharp_style_pattern_matching_over_is_with_cast_check |
Eigenschappen | Weergegeven als |
---|---|
Regel-id | IDE0038 |
Titel | Patroonkoppeling gebruiken om controle te voorkomen is gevolgd door een cast (zonder variabele) |
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# -patroonkoppeling, bijvoorbeeld o is int i
, over een is
controle gevolgd door een cast, bijvoorbeeld if (o is int) { ... (int)o ... }
. IDE0020
Inschakelen of IDE0038
op basis van of de cast-expressie moet worden opgeslagen in een afzonderlijke lokale variabele:
IDE0020
: Cast-expressie wordt opgeslagen in een lokale variabele. Hiermee wordt bijvoorbeeldif (o is int) { var i = (int)o; }
het resultaat van(int)o
een lokale variabele opgeslagen.IDE0038
: Cast-expressie wordt niet opgeslagen in een lokale variabele. Slaat het resultaat bijvoorbeeldif (o is int) { if ((int)o == 1) { ... } }
niet op in(int)o
een lokale variabele.
Opties
Stel de waarde van de gekoppelde optie voor deze regel in om op te geven of patroonkoppeling of is
controle gevolgd door een type cast de voorkeur heeft.
Zie Optieindeling voor meer informatie over het configureren van opties.
csharp_style_pattern_matching_over_is_with_cast_check
Eigenschappen | Weergegeven als | Beschrijving |
---|---|---|
Optienaam | 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 none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.IDE0020.severity = none
dotnet_diagnostic.IDE0038.severity = none
Als u alle regels voor codestijl wilt uitschakelen, stelt u de ernst voor de categorie Style
none
in op in het configuratiebestand.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.