Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Eigenschap | Waarde |
---|---|
regel-id | IDE0302 |
titel | Verzamelingsexpressie gebruiken voor stackalloc |
Categorie | Stijl |
Subcategorie | Taalregels (voorkeuren op expressieniveau) |
Toepasselijke talen | C# 12+ |
Opties | dotnet_style_prefer_collection_expression |
Overzicht
Deze regel is vergelijkbaar met Verzamelingsexpressie gebruiken voor matrix (IDE0300), behalve dat er naar stackalloc
wordt gezocht in plaats van matrices. Net als IDE0300 biedt het de mogelijkheid om de code te converteren voor het gebruik van een verzamelingsexpressie. Zo worden stackalloc int[] { ... }
en stackalloc [] { ... }
vereenvoudigd tot [...]
.
Notitie
Deze regel is alleen beschikbaar in .NET 8 en latere versies waarin de waarden op de stack kunnen worden bewaard.
Opties
Met opties geeft u het gedrag op dat door de regel moet worden afgedwongen. Zie Option-indelingvoor meer informatie over het configureren van opties.
Voorkeur voor collectie-expressie in dotnet_stijl
Eigenschap | Waarde | Beschrijving |
---|---|---|
Optienaam | Voorkeur voor collectie-expressie in dotnet_stijl | |
Optiewaarden | true | when_types_exactly_match |
Gebruik liever alleen verzamelingsexpressies wanneer typen exact overeenkomen, bijvoorbeeld List<int> list = new List<int>() { 1, 2 }; . |
when_types_loosely_match * |
Gebruik liever verzamelingsexpressies, zelfs wanneer typen losjes overeenkomen, bijvoorbeeld IEnumerable<int> list = new List<int>() { 1, 2 }; . Het doeltype moet overeenkomen met het type aan de rechterkant of een van de volgende typen zijn: IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>. |
|
false | never |
Hiermee schakelt u de regel uit. | |
standaardoptiewaarde | when_types_loosely_match * |
*Wanneer deze optie wordt gebruikt, kan de codeoplossing de semantiek van uw code wijzigen.
De when_types_loosely_match
waarde voor deze regel IDE0302
is niet van toepassing, maar wordt hier vermeld voor volledigheid van de dotnet_style_prefer_collection_expression
optie (die wordt gedeeld door meerdere regels). De standaardwaarde is effectief true
.
Voorbeeld
// Code with violations.
ReadOnlySpan<int> x = stackalloc int[] { 1, 2, 3 };
// Fixed code.
ReadOnlySpan<int> x = [1, 2, 3];
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable IDE0302
// The code that's violating the rule is on this line.
#pragma warning restore IDE0302
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.IDE0302.severity = none
Als u alle regels voor de codestijl wilt uitschakelen, stelt u de ernst voor de categorie Style
in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Voor meer informatie, zie Hoe codeanalysewaarschuwingen te onderdrukken.