Delen via


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 8 Nee

Oorzaak

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.

Beschrijving van regel

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

Schendingen oplossen

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.

Wanneer waarschuwingen onderdrukken

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.

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

Code configureren om te analyseren

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.

Specifieke API-oppervlakken opnemen

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

CA1003: Algemene gebeurtenis-handler-exemplaren gebruiken

Zie ook

Generics