Sdílet prostřednictvím


Použijte porovnávání vzorů (IDE0078 a IDE0260)

Tento článek popisuje dvě související pravidla, IDE0078 a IDE0260.

Majetek Hodnota
Pravidlo ID IDE0078
název Použití porovnávání vzorů
kategorie Styl
podkategorie Jazyková pravidla (předvolby porovnávání vzorů)
příslušné jazyky C# 9.0+
Možnost csharp_style_prefer_pattern_matching
Vlastnost Hodnota
ID pravidla IDE0260
název Použití porovnávání vzorů
kategorie Styl
podkategorie Jazyková pravidla (předvolby porovnávání vzorů)
příslušné jazyky C#
Možnosti csharp_style_pattern_matching_over_as_with_null_check

Přehled

Toto pravidlo stylu se týká použití vzorů jazyka C# odpovídajících konstruktorům.

IDE0260 výslovně označí použití výrazu as následovaného členem přečteným prostřednictvím nulového podmínkového operátoru. Toto pravidlo se podobá IDE0019, které označuje použití výrazu as následovaného kontrolou null.

Možnosti

Možnosti určují chování, které má pravidlo vynutit. Informace o konfiguraci možností naleznete v tématu Formát možnosti.

csharp_style_prefer_pattern_matching (IDE0078)

Vlastnost Hodnota Popis
název možnosti csharp_style_prefer_pattern_matching
Hodnoty voleb true Pokud je to možné, raději používejte konstruktory porovnávání vzorů.
false Raději nepoužívejte konstrukce porovnávání vzorů.
výchozí hodnota možnosti true

csharp_style_použití_porovnávání_vzorů_namísto_as_s_kontrolou_na_null (IDE0260)

Tato možnost také konfiguruje pravidlo IDE0019.

Vlastnost Hodnota Popis
název možnosti vzorové přiřazení nad použitím 'as' s kontrolou nulové hodnoty
hodnoty možností true Upřednostňujte porovnávání vzorů před výrazem as s podmíněným přístupem členů s hodnotou null.
false Zakáže pravidlo.
výchozí hodnota možnosti true

Příklady

IDE0078

// csharp_style_prefer_pattern_matching = true
var x = i is default(int) or > (default(int));
var y = o is not C c;

// csharp_style_prefer_pattern_matching = false
var x = i == default || i > default(int);
var y = !(o is C c);

IDE0260

// Code with violations.
object? o = null;
if ((o as string)?.Length == 0)
{
}

// Fixed code (csharp_style_pattern_matching_over_as_with_null_check = true).
object? o = null;
if (o is string { Length: 0 })
{
}

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

Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .

[*.{cs,vb}]
dotnet_diagnostic.IDE0078.severity = none
dotnet_diagnostic.IDE0260.severity = none

Chcete-li zakázat všechna pravidla stylu kódu, nastavte závažnost pro kategorii Style na none v konfiguračním 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é