Sdílet prostřednictvím


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 inapří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říklad if (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.

Viz také