Ajouter un cast explicite dans la boucle foreach (IDE0220)

Propriété Value
Identificateur de la règle IDE0220
Titre Ajouter un cast explicite
Catégorie Style
Sous-catégorie Règles de langage (préférences au niveau de l’expression)
Langages applicables C#
Options dotnet_style_prefer_foreach_explicit_cast_in_source

Vue d’ensemble

Cette règle signale l’absence d’un cast explicite dans une foreach boucle lorsque le compilateur ajoute un cast masqué. Pour les collections génériques ou fortement typées, le fait de forcer un cast explicite lorsque le compilateur ajouterait un cast masqué peut révéler l’utilisation d’un type incorrect dans l’instruction foreach .

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.

dotnet_style_prefer_foreach_explicit_cast_in_source

Propriété Valeur Description
Nom d'option dotnet_style_prefer_foreach_explicit_cast_in_source
Valeurs d’option always Préférez les casts explicites dans le code source.
when_strongly_typed Préférez les casts explicites pour les collections fortement typées (génériques), mais pas pour les collections héritées, telles que ArrayList.
Valeur d’option par défaut when_strongly_typed

Exemple

// Code with violations.
var list = new List<object>();
foreach (string item in list) { }

// Fixed code.
var list = new List<object>();
foreach (string item in list.Cast<string>())

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

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.IDE0220.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