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ładif (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ładif (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ż
- dopasowywanie wzorca w języku C#
- reguły stylu kodu
- Zasady stylu kodu