Udostępnij za pośrednictwem


Używanie dopasowania wzorca (IDE0078 i IDE0260)

W tym artykule opisano dwie powiązane reguły, IDE0078 i IDE0260.

Własność Wartość
identyfikator reguły IDE0078
Tytuł Użyj dopasowywania wzorca
Kategoria Styl
podkategoria Reguły języka (preferencje dopasowywania wzorców)
Stosowane języki C# 9.0+
Opcje csharp_style_prefer_pattern_matching
Własność Wartość
identyfikator reguły IDE0260
Tytuł Dopasowywanie wzorca
Kategoria Styl
podkategorii Reguły języka (preferencje dopasowywania wzorców)
Stosowane języki C#
opcje csharp_style_pattern_matching_over_as_with_null_check

Przegląd

Ta reguła stylu dotyczy używania wzorców języka C# pasujących konstrukcji.

IDE0260 wyraźnie oznacza użycie wyrażenia as, po którym następuje odczyt członka za pośrednictwem operatora warunkowego o wartości null. Ta reguła jest podobna do IDE0019, która oznacza użycie wyrażenia as, a następnie sprawdzenie null.

Opcje

Opcje określają zachowanie, które ma być wymuszane przez regułę. Aby uzyskać informacje na temat konfigurowania opcji, zobacz Format opcji.

csharp_style_prefer_pattern_matching (IDE0078)

Własność Wartość Opis
nazwa opcji Preferowanie dopasowywania wzorców w stylu C#
Wartości opcji true Preferuj używanie konstrukcji dopasowywania wzorców, jeśli jest to możliwe
false Preferuj nie używać konstrukcji dopasowywania wzorców.
domyślna wartość opcji true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

Ta opcja umożliwia również skonfigurowanie reguły IDE0019.

Własność Wartość Opis
nazwa opcji csharp_style_dopasowanie_wzorca_zamiast_as_z_sprawdzeniem_null
wartości opcji true Preferuj dopasowywanie wzorca w wyrażeniu as z dostępem warunkowym o wartości null.
false Wyłącza regułę.
domyślna wartość opcji true

Przykłady

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

Pomijanie ostrzeżenia

Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

#pragma warning disable IDE0078 // or IDE0260
// The code that's violating the rule is on this line.
#pragma warning restore IDE0078 // or IDE0260

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji .

[*.{cs,vb}]
dotnet_diagnostic.IDE0078.severity = none
dotnet_diagnostic.IDE0260.severity = none

Aby wyłączyć wszystkie reguły stylu kodu, ustaw ważność kategorii Style na none w pliku konfiguracji .

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.

Zobacz też