Použití porovnávání vzorů, abyste se vyhnuli kontrole "is" následovanou přetypováním (IDE0020 a IDE0038)
Tento článek popisuje dvě související pravidla IDE0020
a IDE0038
.
Vlastnost | Hodnota |
---|---|
ID pravidla | IDE0020 |
Název | Použití porovnávání vzorů, abyste se vyhnuli is kontrole následované přetypováním (s proměnnou) |
Kategorie | Styl |
Podkategorie | Jazyková pravidla (předvolby porovnávání vzorů) |
Příslušné jazyky | C# |
Možnosti | csharp_style_pattern_matching_over_is_with_cast_check |
Vlastnost | Hodnota |
---|---|
ID pravidla | IDE0038 |
Název | Použití porovnávání vzorů, abyste se vyhnuli is kontrole následované přetypováním (bez proměnné) |
Kategorie | Styl |
Podkategorie | Jazyková pravidla (předvolby porovnávání vzorů) |
Příslušné jazyky | C# |
Možnosti | csharp_style_pattern_matching_over_is_with_cast_check |
Přehled
Toto pravidlo stylu se týká použití porovnávání vzorů jazyka C#, o is int i
například , nad kontrolou následovanou is
přetypováním, if (o is int) { ... (int)o ... }
například . Povolte buď IDE0020
nebo IDE0038
na základě toho, zda má být výraz přetypování uložen do samostatné místní proměnné:
IDE0020
: Výraz přetypování se uloží do místní proměnné. Napříkladif (o is int) { var i = (int)o; }
uloží výsledek(int)o
v místní proměnné.IDE0038
: Výraz přetypování není uložen do místní proměnné.if (o is int) { if ((int)o == 1) { ... } }
Například neukládá výsledek(int)o
do místní proměnné.
Možnosti
Nastavte hodnotu přidružené možnosti pro toto pravidlo, abyste určili, zda je upřednostňované porovnávání vzorů nebo is
kontrola, za kterými následuje přetypování typu.
Další informace o konfiguraci možností naleznete v tématu Formát možnosti.
csharp_style_pattern_matching_over_is_with_cast_check
Vlastnost | Hodnota | Popis |
---|---|---|
Název možnosti | csharp_style_pattern_matching_over_is_with_cast_check | |
Hodnoty možností | true |
Upřednostňujte porovnávání vzorů is místo výrazů s přetypování typu. |
false |
Zakáže pravidlo. | |
Výchozí hodnota možnosti | 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; ... }
Potlačení upozornění
Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable IDE0020 // Or IDE0038
// The code that's violating the rule is on this line.
#pragma warning restore IDE0020 // Or IDE0038
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.IDE0020.severity = none
dotnet_diagnostic.IDE0038.severity = none
Pokud chcete zakázat všechna pravidla stylu kódu, nastavte závažnost pro kategorii Style
do none
konfiguračního souboru.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.