CA1801: A nem használt paraméterek áttekintése
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1801 |
Cím | A nem használt paraméterek áttekintése |
Kategória | Használat |
A javítás kompatibilitástörő vagy nem törik | Nem törés – Ha a tag nem látható a szerelvényen kívül, a módosítástól függetlenül. Nem törés – Ha módosítja a tagot a paraméter törzsén belüli használatára. Törés – Ha eltávolítja a paramétert, és az a szerelvényen kívül látható. |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Nem |
Ok
A metódusadák olyan paramétert tartalmaznak, amelyet nem használnak a metódus törzsében.
Ez a szabály nem vizsgálja a következő módszereket:
Meghatalmazott által hivatkozott metódusok.
Eseménykezelőként használt metódusok.
Szerializálási konstruktorok (lásd az irányelveket).
Szerializálási GetObjectData módszerek.
A (
MustOverride
Visual Basic) módosítóvalabstract
deklarált metódusok.A (
Overridable
Visual Basic) módosítóvalvirtual
deklarált metódusok.A (
Overrides
Visual Basic) módosítóvaloverride
deklarált metódusok.A (
Declare
Visual Basic) módosítóval deklaráltextern
metódusok.
Ez a szabály nem jelöli meg az elvetés szimbólummal elnevezett paramétereket, _
például , _1
és _2
. Ez csökkenti az aláírási követelményekhez szükséges paraméterek figyelmeztetési zaját, például egy delegáltként használt metódust, egy speciális attribútumokkal rendelkező paramétert, vagy egy olyan paramétert, amelynek az értékét implicit módon éri el egy keretrendszer, de a kód nem hivatkozik rá.
Megjegyzés:
Ez a szabály elavult a IDE0060 javára. A IDE0060-elemző buildben való kikényszerítésével kapcsolatos további információkért lásd a kódstílus-elemzést.
Szabály leírása
Tekintse át a nem virtuális metódusok azon paramétereit, amelyeket a metódus törzsében nem használnak annak ellenőrzésére, hogy nem áll-e fenn helytelenség a hozzáférésük sikertelensége miatt. A nem használt paraméterek karbantartási és teljesítményköltségeket vonnak maga után.
Előfordulhat, hogy a szabály megsértése egy implementációs hibára mutat a metódusban. A paramétert például a metódus törzsében kellett volna használni. A szabály figyelmeztetéseinek mellőzése, ha a paraméternek a visszamenőleges kompatibilitás miatt kell léteznie.
Szabálysértések kijavítása
A szabály megsértésének kijavításához távolítsa el a nem használt paramétert (kompatibilitástörő változás), vagy használja a paramétert a metódus törzsében (nem törhető változás).
Mikor kell letiltani a figyelmeztetéseket?
A szabály figyelmeztetését nyugodtan letilthatja:
A korábban kiszállított kódban, amelynek javítása kompatibilitástörő változás lenne.
this
A paraméter egy egyéni bővítménymetódusban a következőhözMicrosoft.VisualStudio.TestTools.UnitTesting.Assert: . Az osztály függvényei Assert statikusak, ezért nem szükséges hozzáférni athis
paraméterhez a metódus törzsében.
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA1801
// The code that's violating the rule is on this line.
#pragma warning restore CA1801
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none
a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA1801.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Kód konfigurálása elemzéshez
A következő beállítással konfigurálhatja, hogy a kódbázis mely részein futtassa ezt a szabályt.
Ezt a beállítást konfigurálhatja csak erre a szabályra, az összes szabályra, vagy az ebben a kategóriában (Teljesítmény) érvényes összes szabályra. További információ: Kódminőségi szabály konfigurációs beállításai.
Adott API-felületek belefoglalása
A kódbázis azon részeit konfigurálhatja, amelyeken futtathatja ezt a szabályt az akadálymentességük alapján. Ha például meg szeretné adni, hogy a szabály csak a nem nyilvános API-felületen fusson, adja hozzá a következő kulcs-érték párot a projekt egyik .editorconfig fájljához:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Alapértelmezés szerint a CA1801 szabály minden API-felületre (nyilvános, belső és privát) érvényes.
Példa
Az alábbi példa két módszert mutat be. Az egyik metódus megsérti a szabályt, a másik pedig megfelel a szabálynak.
// 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);
}
Kapcsolódó szabályok
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: