Använda mönstermatchning (IDE0078 och IDE0260)
Den här artikeln beskriver två relaterade regler och IDE0078
IDE0260
.
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.