Utiliser une expression de collection pour tableau (IDE0300)
Propriété | Value |
---|---|
Identificateur de la règle | IDE0300 |
Titre | Utiliser une expression de collection pour tableau |
Catégorie | Style |
Sous-catégorie | Règles de langage (préférences au niveau de l’expression) |
Langages applicables | C# 12+ |
Options | dotnet_style_prefer_collection_expression |
Vue d’ensemble
Cette règle signale les emplacements où une expression de collection peut être utilisée pour initialiser un tableau. Par exemple, cette règle offre de simplifier du code comme new C[] { ... }
, new[] { ... }
et C[] c = { ... }
dans le formulaire d’expression de collection ([...]
).
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_collection_expression
Propriété | Valeur | Description |
---|---|---|
Nom d'option | dotnet_style_prefer_collection_expression | |
Valeurs d’option | true | when_types_exactly_match |
Préférez l’utilisation d’expressions de collection uniquement lorsque les types correspondent exactement, par exemple, int[] i = new int[] { 1, 2, 3 }; . |
when_types_loosely_match (.NET 9 et versions ultérieures)* |
Préférez l’utilisation d’expressions de collection même lorsque les types ont une faible correspondance, par exemple, IEnumerable<int> i = new int[] { 1, 2, 3 }; . Le type ciblé doit correspondre au type sur le côté droit ou être l’un des types suivants : IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>. |
|
false | never |
Il désactive la règle. | |
Valeur d’option par défaut | true dans .NET 8when_types_loosely_match dans .NET 9 et versions ultérieures |
*Lorsque cette option est utilisée, le correctif de code peut modifier la sémantique de votre code. Par exemple, si vous aviez IEnumerable<int> x = new int[] { 1, 2, 3 };
, un tableau est généré dans le code d’origine. Toutefois, dans le nouveau code (IEnumerable<int> x = [1, 2, 3];
), un type interne synthétisé par compilateur est produit à la place. Vous pouvez observer cette différence si vous utilisez une vérification is
ou un forçage de type.
Exemple
// Code with violations.
int[] i = new int[] { 1, 2, 3 };
IEnumerable<int> j = new int[] { 1, 2, 3 };
// Fixed code.
int[] i = [1, 2, 3];
IEnumerable<int> j = [1, 2, 3];
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 IDE0300
// The code that's violating the rule is on this line.
#pragma warning restore IDE0300
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.IDE0300.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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour