CA1005: Vermijd overmatige parameters voor algemene typen
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA1005 |
Titel | Vermijd overmatige parameters voor algemene typen |
Categorie | Ontwerpen |
Oplossing is brekend of niet-brekend | Breken |
Standaard ingeschakeld in .NET 9 | Nee |
Een extern zichtbaar algemeen type heeft meer dan twee typeparameters.
Deze regel kijkt standaard alleen naar extern zichtbare typen, maar dit kan worden geconfigureerd.
Hoe meer typeparameters een algemeen type bevat, hoe moeilijker het is om te weten en te onthouden wat elke typeparameter vertegenwoordigt. Het is meestal duidelijk met één typeparameter, zoals in List<T>
, en in bepaalde gevallen met twee typeparameters, zoals in Dictionary<TKey, TValue>
. Als er meer dan twee typeparameters bestaan, wordt de moeilijkheid te groot voor de meeste gebruikers (bijvoorbeeld TooManyTypeParameters<T, K, V>
in C# of TooManyTypeParameters(Of T, K, V)
in Visual Basic).
Als u een schending van deze regel wilt oplossen, wijzigt u het ontwerp zodat er niet meer dan twee typeparameters worden gebruikt.
U hoeft geen waarschuwing van deze regel te onderdrukken, tenzij voor het ontwerp absoluut meer dan twee typeparameters zijn vereist. Het bieden van generieken in een syntaxis die gemakkelijk te begrijpen en te gebruiken is, vermindert de tijd die nodig is om te leren en het acceptatiepercentage van nieuwe bibliotheken te verhogen.
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 CA1005
// The code that's violating the rule is on this line.
#pragma warning restore CA1005
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.CA1005.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
CA1010: Verzamelingen moeten algemene interface implementeren
CA1000: Geen statische leden declareren voor algemene typen
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: