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 connexes, IDE0020
et IDE0038
.
Propriété | Valeur |
---|---|
Identificateur de la règle | IDE0020 |
Titre | Utiliser les 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 de correspondance de modèle) |
langues applicables | C# |
Options | csharp_style_pattern_matching_over_is_with_cast_check |
Propriété | Valeur |
---|---|
Identificateur de la règle | IDE0038 |
Titre | Utiliser les 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 de correspondance de modèle) |
langues applicables | C# |
Options | csharp_style_pattern_matching_over_is_with_cast_check |
Aperçu
Cette règle de style concerne l’utilisation des critères spéciaux C#, par exemple, o is int i
, sur un contrôle de is
suivie d’un cast, par exemple, if (o is int) { ... (int)o ... }
. Activez IDE0020
ou IDE0038
en fonction que l'expression de conversion soit enregistrée ou non dans une variable locale séparée :
-
IDE0020
: l'expression 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 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éfinir la valeur de l’option associée pour cette règle pour spécifier si les critères spéciaux ou le contrôle de is
suivie d'un cast de type est préférée.
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 de l’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 souhaitez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactivez 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 d’un fichier, d’un dossier ou d’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 d’analyse du code.
Voir aussi
- Critères spéciaux dans C#
- règles de langage de style de code
- Informations de référence sur les règles de style de code