Utiliser la correspondance de modèle pour éviter la vérification « is » suivie d’un cast (IDE0020 et IDE0038)

Cet article décrit deux règles associées, IDE0020 et IDE0038.

Propriété Value
Identificateur de la règle IDE0020
Titre Utiliser des critères spéciaux pour éviter la vérification is suivie d’un cast (avec une variable)
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_is_with_cast_check
Propriété Value
Identificateur de la règle IDE0038
Titre Utiliser des critères spéciaux pour éviter la vérification is suivie d’un cast (sans variable)
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_is_with_cast_check

Vue d’ensemble

Cette règle de style concerne l’utilisation des critères spéciaux C#, par exemple, o is int i, sur une vérification is suivie d’un cast, par exemple, if (o is int) { ... (int)o ... }. Activez IDE0020 ou IDE0038 selon que l’expression de cast doit être enregistrée ou non dans une variable locale distincte :

  • IDE0020 : l’expression de cast est enregistrée dans une variable locale. Par exemple, if (o is int) { var i = (int)o; } enregistre le résultat de (int)o dans une variable locale.
  • IDE0038 : l’expression de cast n’est pas enregistrée dans une variable locale. Par exemple, if (o is int) { if ((int)o == 1) { ... } } n’enregistre pas le résultat de (int)o dans une variable locale.

Options

Définissez la valeur de l’option associée de cette règle pour spécifier si des critères spéciaux ou la vérification is suivie d’un cast de type est préférable.

Pour plus d’informations sur la configuration des options, consultez Format d’option.

csharp_style_pattern_matching_over_is_with_cast_check

Propriété Valeur Description
Nom d'option csharp_style_pattern_matching_over_is_with_cast_check
Valeurs d’option true Préférer les critères spéciaux plutôt que les expressions is avec des casts de type.
false Il désactive la règle.
Valeur d’option par défaut 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; ... }

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

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.IDE0020.severity = none
dotnet_diagnostic.IDE0038.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