Używanie dopasowania wzorca (IDE0078 i IDE0260)

W tym artykule opisano dwie powiązane reguły i IDE0078IDE0260.

Właściwości Wartość
Identyfikator reguły IDE0078
Stanowisko Korzystanie z dopasowania do wzorca
Kategoria Styl
Podkategorii Reguły języka (preferencje dopasowywania wzorców)
Odpowiednie języki C# 9.0+
Opcje csharp_style_prefer_pattern_matching
Właściwości Wartość
Identyfikator reguły IDE0260
Stanowisko Korzystanie z dopasowania do wzorca
Kategoria Styl
Podkategorii Reguły języka (preferencje dopasowywania wzorców)
Odpowiednie języki C#
Opcje csharp_style_pattern_matching_over_as_with_null_check

Omówienie

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

IDE0260 konkretnie flaguje użycie as wyrażenia, po którym następuje element członkowski odczytany za pomocą operatora warunkowego o wartości null. Ta reguła jest podobna do IDE0019, która flaguje użycie as wyrażenia, a następnie null sprawdzanie.

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łaściwości Wartość Opis
Nazwa opcji csharp_style_prefer_pattern_matching
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.
Wartość opcji domyślnej true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

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

Właściwości Wartość Opis
Nazwa opcji csharp_style_pattern_matching_over_as_with_null_check
Wartości opcji true Preferuj dopasowywanie wzorca za pomocą as wyrażenia z dostępem warunkowym o wartości null.
false Wyłącza regułę.
Wartość opcji domyślnej 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ść dla 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 dotyczące analizy kodu.

Zobacz też