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.