Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
| Propriété | Valeur |
|---|---|
| Identificateur de la règle | IDE0302 |
| Titre | Utiliser l’expression de collection pour stackalloc |
| Catégorie | Style |
| Sous-catégorie | Règles de langage (préférences au niveau de l’expression) |
| Langues applicables | C# 12+ |
| Options | dotnet_style_prefer_collection_expression |
Aperçu
Cette règle est similaire à Utiliser l’expression de collection pour le tableau (IDE0300), sauf qu’elle recherche stackalloc au lieu de tableaux. comme IDE0300, il propose de convertir le code pour utiliser une expression de collection . Par exemple, stackalloc int[] { ... } et stackalloc [] { ... } sont simplifiés pour [...].
Remarque
Cette règle est disponible uniquement dans .NET 8 et les versions ultérieures où les valeurs peuvent être conservées sur la pile.
Paramètres
Les options spécifient le comportement que vous voulez que la règle applique. Pour plus d’informations sur la configuration des options, consultez le format d’option.
dotnet_style_prefer_collection_expression
| Propriété | Valeur | Descriptif |
|---|---|---|
| nom de l’option | dotnet_style_prefer_collection_expression | |
| Valeurs d'option | true | when_types_exactly_match |
Préférez utiliser des expressions de collection uniquement lorsque les types correspondent exactement, par exemple, List<int> list = new List<int>() { 1, 2 };. |
when_types_loosely_match* |
Préférez utiliser des expressions de collection même lorsque les types ne correspondent pas exactement, par exemple, IEnumerable<int> list = new List<int>() { 1, 2 };. 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 | when_types_loosely_match* |
*Lorsque cette option est utilisée, le correctif de code peut modifier la sémantique de votre code.
La valeur when_types_loosely_match ne s'applique pas à cette règle IDE0302, mais elle est mentionnée ici pour assurer l'exhaustivité de l'option dotnet_style_prefer_collection_expression (qui est partagée par plusieurs règles). La valeur par défaut est effectivement true.
Exemple
// Code with violations.
ReadOnlySpan<int> x = stackalloc int[] { 1, 2, 3 };
// Fixed code.
ReadOnlySpan<int> x = [1, 2, 3];
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 IDE0302
// The code that's violating the rule is on this line.
#pragma warning restore IDE0302
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.IDE0302.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.