Sdílet prostřednictvím


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

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

Vlastnost Hodnota
ID pravidla 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žnosti 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í konstruktorů porovnávání vzorů jazyka C#.

IDE0260 výslovně označí použití as výrazu následovaného členem, který přečte prostřednictvím podmíněného operátoru s hodnotou null. Toto pravidlo se podobá IDE0019, které označuje použití as výrazu 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 možností 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_pattern_matching_over_as_with_null_check (IDE0260)

Tato možnost také konfiguruje IDE0019 pravidla.

Vlastnost Hodnota Popis
Název možnosti csharp_style_pattern_matching_over_as_with_null_check
Hodnoty možností true Upřednostňujte porovnávání vzorů u as výrazu s podmíněným přístupem 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

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.IDE0078.severity = none
dotnet_diagnostic.IDE0260.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é