CA1801: Ongebruikte parameters controleren
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA1801 |
Titel | Ongebruikte parameters controleren |
Categorie | Gebruik |
Oplossing is brekend of niet-brekend | Niet-brekend: als het lid niet zichtbaar is buiten de assembly, ongeacht de wijziging die u aanbrengt. Niet-brekend: als u het lid wijzigt om de parameter in de hoofdtekst te gebruiken. Fouten veroorzaken: als u de parameter verwijdert en deze zichtbaar is buiten de assembly. |
Standaard ingeschakeld in .NET 9 | Nee |
Oorzaak
Een methodehandtekening bevat een parameter die niet wordt gebruikt in de hoofdtekst van de methode.
Met deze regel worden de volgende soorten methoden niet onderzocht:
Methoden waarnaar wordt verwezen door een gemachtigde.
Methoden die worden gebruikt als gebeurtenis-handlers.
Serialisatieconstructors (zie richtlijnen).
Serialisatiemethoden GetObjectData .
Methoden die zijn gedeclareerd met de
abstract
modifier (MustOverride
in Visual Basic).Methoden die zijn gedeclareerd met de
virtual
modifier (Overridable
in Visual Basic).Methoden die zijn gedeclareerd met de
override
modifier (Overrides
in Visual Basic).Methoden die zijn gedeclareerd met de
extern
(Declare
instructie in Visual Basic) modifier.
Deze regel markeert geen parameters met de naam met het symbool voor verwijderen , bijvoorbeeld _
, _1
en _2
. Dit vermindert waarschuwingsruis voor parameters die nodig zijn voor handtekeningvereisten, bijvoorbeeld een methode die wordt gebruikt als gemachtigde, een parameter met speciale kenmerken of een parameter waarvan de waarde impliciet wordt geopend tijdens runtime door een framework, maar niet wordt verwezen in code.
Notitie
Deze regel is afgeschaft ten gunste van IDE0060. Zie code-stijlanalyse voor informatie over het afdwingen van de IDE0060 analyzer bij het bouwen.
Beschrijving van regel
Controleer de parameters in niet-virtuele methoden die niet worden gebruikt in de hoofdtekst van de methode om ervoor te zorgen dat er geen onjuistheid bestaat rond het niet openen van deze methoden. Voor ongebruikte parameters worden onderhouds- en prestatiekosten in rekening gebracht.
Soms kan een schending van deze regel verwijzen naar een implementatiefout in de methode. De parameter moet bijvoorbeeld zijn gebruikt in de hoofdtekst van de methode. Onderdrukt waarschuwingen van deze regel als de parameter moet bestaan vanwege compatibiliteit met eerdere versies.
Schendingen oplossen
Als u een schending van deze regel wilt oplossen, verwijdert u de ongebruikte parameter (een wijziging die fouten veroorzaakt) of gebruikt u de parameter in de hoofdtekst van de methode (een niet-belangrijke wijziging).
Wanneer waarschuwingen onderdrukken
Het is veilig om een waarschuwing van deze regel te onderdrukken:
In eerder verzonden code waarvoor de oplossing een belangrijke wijziging zou zijn.
Voor de
this
parameter in een aangepaste extensiemethode voor Microsoft.VisualStudio.TestTools.UnitTesting.Assert. De functies in de Assert klasse zijn statisch, dus er is geen toegang nodig tot dethis
parameter in de hoofdtekst van de methode.
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 CA1801
// The code that's violating the rule is on this line.
#pragma warning restore CA1801
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.CA1801.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 (prestaties) 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
De CA1801-regel is standaard van toepassing op alle API-oppervlakken (openbaar, intern en privé).
Opmerking
In het volgende voorbeeld ziet u twee methoden. De ene methode schendt de regel en de andere methode voldoet aan de regel.
// This method violates the rule.
public static string GetSomething(int first, int second)
{
return first.ToString(CultureInfo.InvariantCulture);
}
// This method satisfies the rule.
public static string GetSomethingElse(int first)
{
return first.ToString(CultureInfo.InvariantCulture);
}