Delen via


Patroonkoppeling gebruiken (IDE0078 en IDE0260)

In dit artikel worden twee gerelateerde regels beschreven, IDE0078 en IDE0260.

Eigenschap Waarde
Regel ID IDE0078
titel Patroonherkenning gebruiken
categorie Stijl
subcategorie Taalregels (patroonkoppelingsvoorkeuren)
Toepasselijke talen C# 9.0+
opties csharp_style_prefer_pattern_matching
Eigendom Waarde
Regel-ID IDE0260
titel Patroonherkenning gebruiken
categorie Stijl
subcategorie Taalregels (patroonkoppelingsvoorkeuren)
Toepasselijke talen C#
opties csharp_style_pattern_matching_over_as_with_null_check

Overzicht

Deze stijlregel betreft het gebruik van C# patroon dat overeenkomt met constructies.

IDE0260 markeert specifiek het gebruik van een as-expressie, gevolgd door een lid dat de null-conditional operatorleest. Deze regel is vergelijkbaar met IDE0019, die het gebruik van een as expressie markeert, gevolgd door een null controle.

Opties

Met opties geeft u het gedrag op dat door de regel moet worden afgedwongen. Zie Option-indelingvoor meer informatie over het configureren van opties.

csharp_style_prefer_pattern_matching (IDE0078)

Eigendom Waarde Beschrijving
optienaam csharp_style_prefer_pattern_matching
optiewaarden true Gebruik waar mogelijk patroonkoppelingsconstructies
false Gebruik liever geen patroonkoppelingsconstructies.
standaardoptiewaarde true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

Met deze optie configureert u ook regel IDE0019.

Eigenschap Waarde Beschrijving
Optienaam csharp_stijl_patroonherkenning_boven_as_met_null_controle
optiewaarden true Geef de voorkeur aan patroonmatching boven as-expressie met null-voorwaardelijke ledentoegang.
false Hiermee schakelt u de regel uit.
standaardoptiewaarde true

Voorbeelden

IDE0078

// csharp_style_prefer_pattern_matching = true
var x = i is default(int) or > (default(int));
var y = o is not C c;

// csharp_style_prefer_pattern_matching = false
var x = i == default || i > default(int);
var y = !(o is C c);

IDE0260

// Code with violations.
object? o = null;
if ((o as string)?.Length == 0)
{
}

// Fixed code (csharp_style_pattern_matching_over_as_with_null_check = true).
object? o = null;
if (o is string { Length: 0 })
{
}

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 IDE0078 // or IDE0260
// The code that's violating the rule is on this line.
#pragma warning restore IDE0078 // or IDE0260

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.IDE0078.severity = none
dotnet_diagnostic.IDE0260.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 codeanalyse waarschuwingen onderdrukken.

Zie ook