Share via


Använda mönstermatchning (IDE0078 och IDE0260)

Den här artikeln beskriver två relaterade regler och IDE0078IDE0260.

Property Värde
Regel-ID IDE0078
Rubrik Använda mönstermatchning
Kategori Format
Underkategori Språkregler (inställningar för mönstermatchning)
Tillämpliga språk C# 9.0+
Alternativ csharp_style_prefer_pattern_matching
Property Värde
Regel-ID IDE0260
Rubrik Använda mönstermatchning
Kategori Format
Underkategori Språkregler (inställningar för mönstermatchning)
Tillämpliga språk C#
Alternativ csharp_style_pattern_matching_over_as_with_null_check

Översikt

Den här formatregeln gäller användningen av C#- mönstermatchningskonstruktioner .

IDE0260 flaggar specifikt användningen av ett as uttryck följt av en medlem som läss igenom null-villkorsoperatorn. Den här regeln liknar IDE0019, som flaggar användningen av ett as uttryck följt av en null kontroll.

Alternativ

Alternativ anger det beteende som du vill att regeln ska framtvinga. Information om hur du konfigurerar alternativ finns i Alternativformat.

csharp_style_prefer_pattern_matching (IDE0078)

Property Värde beskrivning
Alternativnamn csharp_style_prefer_pattern_matching
Alternativvärden true Föredrar att använda mönstermatchningskonstruktioner när det är möjligt
false Föredrar att inte använda mönstermatchningskonstruktioner.
Standardalternativvärde true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

Det här alternativet konfigurerar även regel IDE0019.

Property Värde beskrivning
Alternativnamn csharp_style_pattern_matching_over_as_with_null_check
Alternativvärden true Föredrar mönstermatchning framför as uttryck med null-villkorlig medlemsåtkomst.
false Inaktiverar regeln.
Standardalternativvärde true

Exempel

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 })
{
}

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

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

Om du vill inaktivera alla regler i kodformat anger du allvarlighetsgraden för kategorin Style till i konfigurationsfilen.none

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

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även