CA1721: A tulajdonságnevek nem egyeznek a get metódusok között
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1721 |
Cím | A tulajdonságnevek nem egyeznek a beolvasási módszerekkel |
Kategória | Elnevezés |
A javítás kompatibilitástörő vagy nem törik | Törés |
Alapértelmezés szerint engedélyezve a .NET 9-ben | Nem |
Ok
A tag neve a "Get" betűvel kezdődik, máskülönben egy tulajdonság nevével egyezik. Egy "GetColor" nevű metódust és egy "Color" nevű tulajdonságot tartalmazó típus például szabálysértést okoz. Ez a szabály nem aktiválódik, ha a tulajdonság vagy a metódus a ObsoleteAttribute.
Ez a szabály alapértelmezés szerint csak külsőleg látható tagokat és tulajdonságokat tekint meg, de ez konfigurálható.
Szabály leírása
A "Get" metódusoknak és tulajdonságoknak olyan névvel kell rendelkezniük, amelyek egyértelműen megkülönböztetik a függvényüket.
Az elnevezési konvenciók gyakran keresik a közös nyelvi futtatókörnyezetet megcélzó kódtárakat. Ez a konzisztencia csökkenti az új szoftvertárak megismeréséhez szükséges időt, és növeli az ügyfelek bizalmát abban, hogy a kódtárat olyan személy fejlesztette ki, aki jártas a felügyelt kódok fejlesztésében.
Szabálysértések kijavítása
Módosítsa úgy a nevet, hogy az ne egyezzen meg a "Get" előtagú metódus nevével.
Mikor kell letiltani a figyelmeztetéseket?
Ne tiltsa el a szabály figyelmeztetését. A szabály alól kivételt képez az, ha a "Get" metódust az IExtenderProvider interfész implementálása okozza.
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 CA1721
// The code that's violating the rule is on this line.
#pragma warning restore CA1721
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.CA1721.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 (elnevezés) szereplő összes szabályra, amelyekre vonatkozik. További információ: Kódminőségi szabály konfigurációs beállításai.
Adott API-felületek belefoglalása
A api_surface beállítással konfigurálhatja, hogy a kódbázis mely részein futtassa 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
Jegyzet
Cserélje le a XXXX
CAXXXX
részét a vonatkozó szabály azonosítójára.
Példa
Az alábbi példa egy metódust és tulajdonságot tartalmaz, amely megsérti ezt a szabályt.
public class Test
{
public DateTime Date
{
get { return DateTime.Today; }
}
// Violates rule: PropertyNamesShouldNotMatchGetMethods.
public string GetDate()
{
return this.Date.ToString();
}
}
Imports System
Namespace ca1721
Public Class Test
Public ReadOnly Property [Date]() As DateTime
Get
Return DateTime.Today
End Get
End Property
' Violates rule: PropertyNamesShouldNotMatchGetMethods.
Public Function GetDate() As String
Return Me.Date.ToString()
End Function
End Class
End Namespace