Megosztás a következőn keresztül:


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 8-ban 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 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

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