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


CA1715: Az azonosítóknak megfelelő előtaggal kell rendelkezniük

Tulajdonság Érték
Szabályazonosító CA1715
Cím Az azonosítóknak helyes előtaggal kell rendelkezniük
Kategória Elnevezés
A javítás kompatibilitástörő vagy nem törik Törés - amikor aktiválva van a felületeken.

Nem törés – általános típusparaméterek esetén.
Alapértelmezés szerint engedélyezve a .NET 8-ban Nem

Ok

A felület neve nem "I" nagybetűvel kezdődik.

-vagy-

Egy típus vagy metódus általános típusparaméterének neve nem "T" nagybetűvel kezdődik.

Ez a szabály alapértelmezés szerint csak külsőleg látható felületeket, típusokat és metódusokat tekint meg, de ez konfigurálható.

Szabály leírása

Bizonyos programozási elemek neve konvenció szerint egy adott előtaggal kezdődik.

Az illesztőneveknek nagybetűs "I" betűvel kell kezdődnie, majd egy másik nagybetűvel. Ez a szabály olyan felületnevek megsértéseit jelenti, mint a "MyInterface" és az "IsolatedInterface".

Az általános típusparaméterek neveinek nagybetűs "T" betűvel kell kezdődnie, és opcionálisan egy másik nagybetű is követhető. Ez a szabály az olyan általános típusparaméter-nevek megsértéseit jelenti, mint a "V" és a "Type".

Az elnevezési konvenciók gyakran keresik a közös nyelvi futtatókörnyezetet megcélzó kódtárakat. Ez csökkenti az új szoftverkódtárakhoz szükséges tanulási görbé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ód fejlesztésében.

Kód konfigurálása elemzéshez

A következő beállítások segítségével konfigurálhatja, hogy a kódbázis mely részein futtassa ezt a szabályt.

Ezeket a beállításokat 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

Egy karakteres típusparaméterek

Konfigurálhatja, hogy kizárja-e az egy karakterből álló típusparamétereket ebből a szabályból. Ha például meg szeretné adni, hogy ez a szabály ne elemezze az egykarakú típusparamétereket, adja hozzá az alábbi kulcs-érték párok egyikét a projekt egyik .editorconfig fájljához:

# Package version 2.9.0 and later
dotnet_code_quality.CA1715.exclude_single_letter_type_parameters = true

# Package version 2.6.3 and earlier
dotnet_code_quality.CA2007.allow_single_letter_type_parameters = true

Megjegyzés:

Ez a szabály soha nem aktiválódik például Collection<T>egy típusparaméter Tesetében.

Szabálysértések kijavítása

Nevezze át az azonosítót úgy, hogy megfelelően legyen előtagban.

Mikor kell letiltani a figyelmeztetéseket?

Ne tiltsa el a szabály figyelmeztetését.

Példa a felület elnevezésére

A következő kódrészlet helytelenül elnevezett felületet jelenít meg:

' Violates this rule
Public Interface Book

    ReadOnly Property Title() As String

    Sub Read()

End Interface
// Violation.
public interface Book
{
    string Title
    {
        get;
    }

    void Read();
}

Az alábbi kódrészlet az "I" előtaggal javítja ki az előző szabálysértést:

// Fixes the violation by prefixing the interface with 'I'.
public interface IBook
{
    string Title
    {
        get;
    }

    void Read();
}
' Fixes the violation by prefixing the interface with 'I'
Public Interface IBook

    ReadOnly Property Title() As String

    Sub Read()

End Interface

Típusparaméter elnevezési példa

A következő kódrészlet egy helytelenül elnevezett általános típusparamétert jelenít meg:

' Violates this rule
Public Class Collection(Of Item)

End Class
// Violation.
public class Collection<Item>
{
}

Az alábbi kódrészlet a "T" előtaggal javítja ki az előző szabálysértést:

// Fixes the violation by prefixing the generic type parameter with 'T'.
public class Collection<TItem>
{
}
' Fixes the violation by prefixing the generic type parameter with 'T'
Public Class Collection(Of TItem)

End Class