Utiliser la correspondance de modèles (IDE0078 et IDE0260)

Cet article décrit deux règles associées, IDE0078 et IDE0260.

Propriété Value
Identificateur de la règle IDE0078
Titre Utiliser les critères spéciaux
Catégorie Style
Sous-catégorie Règles de langage (préférences relatives aux critères spéciaux)
Langages applicables C# 9.0+
Options csharp_style_prefer_pattern_matching
Propriété Value
Identificateur de la règle IDE0260
Titre Utiliser les critères spéciaux
Catégorie Style
Sous-catégorie Règles de langage (préférences relatives aux critères spéciaux)
Langages applicables C#
Options csharp_style_pattern_matching_over_as_with_null_check

Vue d’ensemble

Cette règle de style concerne l’utilisation de constructions de correspondance de modèles C#.

IDE0260 signale spécifiquement l’utilisation d’une expression as suivie d’un membre lu dans l’opérateur conditionnel null. Cette règle est semblable à IDE0019, qui signale l’utilisation d’une expression as suivie d’une vérification null.

Options

Les options spécifient le comportement que vous souhaitez que la règle applique. Pour plus d’informations sur la configuration des options, consultez Format d’option.

csharp_style_prefer_pattern_matching (IDE0078)

Propriété Valeur Description
Nom d'option csharp_style_prefer_pattern_matching
Valeurs d’option true Préférer l’utilisation de constructions de critères spéciaux, si possible
false Préférer ne pas utiliser de constructions de critères spéciaux.
Valeur d’option par défaut true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

Cette option configure également la règle IDE0019.

Propriété Valeur Description
Nom d'option csharp_style_pattern_matching_over_as_with_null_check
Valeurs d’option true Préférez la correspondance de modèles à l’expression as avec un accès membre conditionnel null.
false Il désactive la règle.
Valeur d’option par défaut true

Exemples

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 })
{
}

Supprimer un avertissement

Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.

#pragma warning disable IDE0078 // or IDE0260
// The code that's violating the rule is on this line.
#pragma warning restore IDE0078 // or IDE0260

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

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

Pour désactiver toutes les règles de style de code, définissez la gravité de la catégorie Style sur none dans le fichier de configuration.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.

Voir aussi