CA1002: algemene lijsten niet beschikbaar maken
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA1002 |
Titel | Algemene lijsten niet beschikbaar maken |
Categorie | Ontwerpen |
Oplossing is brekend of niet-brekend | Breken |
Standaard ingeschakeld in .NET 9 | Nee |
Een type bevat een extern zichtbaar lid dat een System.Collections.Generic.List<T> type is, een List<T> type retourneert of waarvan de handtekening een List<T> parameter bevat.
Deze regel kijkt standaard alleen naar extern zichtbare typen, maar dit kan worden geconfigureerd.
System.Collections.Generic.List<T> is een algemene verzameling die is ontworpen voor prestaties en niet voor overname. List<T> bevat geen virtuele leden die het gemakkelijker maken om het gedrag van een overgenomen klasse te wijzigen. De volgende algemene verzamelingen zijn ontworpen voor overname en moeten worden weergegeven in plaats van List<T>.
Als u een schending van deze regel wilt oplossen, wijzigt u het System.Collections.Generic.List<T> type in een van de algemene verzamelingen die zijn ontworpen voor overname.
Onderdrukt geen waarschuwing van deze regel, tenzij de assembly die deze waarschuwing genereert, niet bedoeld is om een herbruikbare bibliotheek te zijn. Het is bijvoorbeeld veilig om deze waarschuwing te onderdrukken in een toepassing die is afgestemd op prestaties, waarbij een prestatievoordeel is opgedaan bij het gebruik van algemene lijsten.
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 CA1002
// The code that's violating the rule is on this line.
#pragma warning restore CA1002
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA1002.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
Gebruik de volgende optie om te configureren op welke onderdelen van uw codebase deze regel moet worden uitgevoerd.
U kunt deze optie configureren voor alleen deze regel, voor alle regels waarop deze van toepassing is, of voor alle regels in deze categorie (ontwerp) waarop deze van toepassing is. Zie de configuratieopties voor de codekwaliteitsregel voor meer informatie.
U kunt instellen op welke onderdelen van uw codebase deze regel moet worden uitgevoerd, op basis van hun toegankelijkheid. Als u bijvoorbeeld wilt opgeven dat de regel alleen moet worden uitgevoerd op het niet-openbare API-oppervlak, voegt u het volgende sleutel-waardepaar toe aan een .editorconfig-bestand in uw project:
dotnet_code_quality.CAXXXX.api_surface = private, internal
CA1005: Vermijd overmatige parameters voor algemene typen
CA1010: Verzamelingen moeten algemene interface implementeren
CA1000: Geen statische leden declareren voor algemene typen
Feedback over .NET
.NET is een opensourceproject. Selecteer een koppeling om feedback te geven: