Share via


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 bijvoorbeeld if (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 bijvoorbeeld if (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 Stylenone in op in het configuratiebestand.

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

Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.

Zie ook