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 i IDE0020
IDE0038
.
Właściwości | Wartość |
---|---|
Identyfikator reguły | IDE0020 |
Tytuł | Użyj dopasowania wzorca, aby uniknąć is sprawdzania, po którym następuje rzutowanie (ze zmienną) |
Kategoria | Styl |
Podkategorii | Reguły języka (preferencje dopasowywania wzorców) |
Odpowiednie języki | C# |
Opcje | csharp_style_pattern_matching_over_is_with_cast_check |
Właściwości | Wartość |
---|---|
Identyfikator reguły | IDE0038 |
Tytuł | Użyj dopasowania wzorca, aby uniknąć is sprawdzania, po którym następuje rzutowanie (bez zmiennej) |
Kategoria | Styl |
Podkategorii | Reguły języka (preferencje dopasowywania wzorców) |
Odpowiednie języki | C# |
Opcje | csharp_style_pattern_matching_over_is_with_cast_check |
Omówienie
Ta reguła stylu dotyczy użycia dopasowania wzorca języka C#, na przykład o is int i
, w is
przypadku sprawdzania, po którym następuje rzutowanie, na przykład if (o is int) { ... (int)o ... }
. Włącz opcję IDE0020
lub IDE0038
na podstawie tego, czy wyrażenie rzutowane powinno zostać zapisane w oddzielnej zmiennej lokalnej:
IDE0020
: Wyrażenie rzutu 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 rzutu nie jest zapisywane w zmiennej lokalnej. Na przykładif (o is int) { if ((int)o == 1) { ... } }
nie zapisuje wyniku w(int)o
zmiennej lokalnej.
Opcje
Ustaw wartość skojarzonej opcji dla tej reguły, aby określić, czy preferowane jest dopasowywanie wzorca, czy is
sprawdzanie według rzutowania typu.
Aby uzyskać więcej informacji na temat konfigurowania opcji, zobacz Format opcji.
csharp_style_pattern_matching_over_is_with_cast_check
Właściwości | Wartość | Opis |
---|---|---|
Nazwa opcji | csharp_style_pattern_matching_over_is_with_cast_check | |
Wartości opcji | true |
Preferuj is dopasowywanie wzorca zamiast wyrażeń z rzutami typu. |
false |
Wyłącza regułę. | |
Wartość opcji domyślnej | 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 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.