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 | CA1725 |
| Titel | Parameternamen moeten overeenkomen met basisdeclaratie |
| Categorie | Naamgeving |
| Fix kan brekend of niet-brekend zijn | Onderbreking |
| Standaard ingeschakeld in .NET 10 | Nee |
| Toepasselijke talen | C# en Visual Basic |
Oorzaak
De naam van een parameter in een overschrijving van een methode komt niet overeen met de naam van de parameter in de basisdeclaratie van de methode of de naam van de parameter in de interfacedeclaratie van de methode.
Deze regel kijkt standaard alleen naar extern zichtbare methoden, maar dit is configureerbaar.
Beschrijving van regel
Consistente naamgeving van parameters in een override-hiërarchie verhoogt de bruikbaarheid van method-overrides. Een parameternaam in een afgeleide methode die verschilt van de naam in de basisaangifte kan verwarring veroorzaken over of de methode een overschrijving is van de basismethode of een nieuwe overload van de methode.
Hoe schendingen op te lossen
Als u een schending van deze regel wilt oplossen, wijzigt u de naam van de parameter zodat deze overeenkomt met de basisdeclaratie. De oplossing is een belangrijke wijziging voor bellers die de parameternaam opgeven.
Example
public interface IUserService
{
int GetAge(int id);
}
public class UserService : IUserService
{
// Violates CA1725: Parameter name should match the base declaration ('id')
// for consistency with IUserService
public int GetAge(int userId)
{
throw new NotImplementedException();
}
}
Wanneer waarschuwingen onderdrukken
Onderdrukt geen waarschuwing van deze regel, met uitzondering van zichtbare methoden in bibliotheken die eerder zijn verzonden.
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 CA1725
// The code that's violating the rule is on this line.
#pragma warning restore CA1725
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.CA1725.severity = none
Zie voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.
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 (naamgeving) waarop deze van toepassing is. Zie de configuratieopties voor de codekwaliteitsregel voor meer informatie.
Specifieke API-oppervlakken opnemen
U kunt configureren op welke onderdelen van uw codebase deze regel moet worden uitgevoerd, op basis van hun toegankelijkheid, door de optie api_surface in te stellen. 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
Notitie
Vervang het XXXX deel van CAXXXX door de id van de toepasselijke regel.