Udostępnij za pośrednictwem


Użyj dopasowania wzorca, aby uniknąć sprawdzania "is", po którym następuje rzutowanie (IDE0020 i IDE0038)

W tym artykule opisano dwie powiązane reguły, IDE0020 i IDE0038.

Własność Wartość
identyfikator reguły IDE0020
Tytuł Użyj dopasowania wzorca, aby uniknąć sprawdzania is, po którym następuje rzutowanie (ze zmienną)
Kategoria Styl
podkategorii Reguły języka (preferencje dopasowywania wzorców)
Obowiązujące języki C#
opcje csharp_style_pattern_matching_over_is_with_cast_check
Własność Wartość
identyfikator reguły IDE0038
Tytuł Użyj dopasowania wzorca, aby uniknąć sprawdzania is, po którym następuje rzutowanie (bez zmiennej).
Kategoria Styl
podkategoria Reguły języka (preferencje dopasowywania wzorców)
Zastosowane języki C#
opcje csharp_style_pattern_matching_over_is_with_cast_check

Przegląd

Ta reguła stylu dotyczy użycia wzorca języka C# pasującego do, na przykład o is int i, za is sprawdzaniem, po którym następuje rzutowanie, na przykład if (o is int) { ... (int)o ... }. Włącz IDE0020 lub IDE0038 w zależności od tego, czy wyrażenie rzutowania powinno być zapisane w osobnej zmiennej lokalnej.

  • IDE0020: Wyrażenie rzutowania jest zapisywane w zmiennej lokalnej. Na przykład if (o is int) { var i = (int)o; } zapisuje wynik (int)o w zmiennej lokalnej.
  • IDE0038: Wyrażenie rzutowe nie jest zapisywane w zmiennej lokalnej. Na przykład if (o is int) { if ((int)o == 1) { ... } } nie zapisuje wyniku (int)o w zmiennej lokalnej.

Opcje

Ustaw wartość skojarzonej opcji dla tej reguły, aby określić, czy preferowane jest dopasowanie wzorca, czy sprawdzanie is, po którym następuje rzutowanie typu.

Aby uzyskać więcej informacji na temat konfigurowania opcji, zobacz Format opcji.

csharp_styl_dopasowywanie_wzorców_przez_is_z_sprawdzaniem_ze_rzutowaniem_typu

Własność Wartość Opis
nazwa opcji csharp_styl_dopasowania_wzorca_zamiast_is_z_kontrolą_konwersji
wartości opcji true Preferuj dopasowanie wzorców zamiast is wyrażeń z rzutami typu.
false Wyłącza regułę.
domyślna wartość opcji true
// csharp_style_pattern_matching_over_is_with_cast_check = true
if (o is int i) {...}

// csharp_style_pattern_matching_over_is_with_cast_check = false
if (o is int) {var i = (int)o; ... }

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

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

[*.{cs,vb}]
dotnet_diagnostic.IDE0020.severity = none
dotnet_diagnostic.IDE0038.severity = none

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

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

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

Zobacz też