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


CA1710: Az azonosítóknak helyes utótagokkal kell rendelkezniük

Tulajdonság Érték
Szabályazonosító CA1710
Cím Az azonosítóknak helyes utótagokkal kell rendelkezniük
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 10-ben Nem

Ok

Az azonosítóknak nincs megfelelő utótagjuk.

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

Szabály leírása

Konvenció szerint az egyes alaptípusokat kiterjesztő vagy bizonyos interfészeket megvalósító típusok vagy ezekből a típusokból származtatott típusok neve az alaptípushoz vagy interfészhez társított utótaggal rendelkezik.

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.

Az alábbi táblázat a társított utótagokkal rendelkező alaptípusokat és interfészeket sorolja fel.

Alaptípus/interfész Toldalék
System.Attribute Attribute
System.EventArgs EventArgs
System.Exception Exception
System.Collections.ICollection Collection
System.Collections.IDictionary Dictionary
System.Collections.IEnumerable Collection
System.Collections.Generic.IReadOnlyDictionary<TKey,TValue> Dictionary
System.Collections.Queue Collection vagy Queue
System.Collections.Stack Collection vagy Stack
System.Collections.Generic.ICollection<T> Collection
System.Collections.Generic.IDictionary<TKey,TValue> Dictionary
System.Data.DataSet DataSet
System.Data.DataTable Collection vagy DataTable
System.IO.Stream Stream
System.Security.IPermission Permission
System.Security.Policy.IMembershipCondition Condition
Eseménykezelő delegált. EventHandler

Azok a típusok, amelyek általános adatstruktúra-típusokat implementálnak ICollection , például szótárak, veremek vagy üzenetsorok, engedélyezett nevek, amelyek értelmes információkat nyújtanak a típus tervezett használatáról.

A ICollection implementálható és adott elemeket tartalmazó típusok neve az Collectionszóra végződik. Például egy Queue objektumgyűjtemény neve QueueCollection. A Collection utótag azt jelzi, hogy a gyűjtemény tagjai a foreach (For Each a Visual Basicben) utasítással számba vehetők.

Az IDictionary vagy IReadOnlyDictionary<TKey,TValue> implementálására szolgáló típusok neve akkor is Dictionary, ha a típus IEnumerable vagy ICollectionis implementál. A Collection és Dictionary utótagok elnevezési konvenciói lehetővé teszik a felhasználók számára, hogy különbséget tegyenek a következő két enumerálási minta között.

A Collection utótaggal rendelkező típusok ezt az enumerálási mintát követik.

foreach(SomeType x in SomeCollection) { }

A Dictionary utótaggal rendelkező típusok ezt az enumerálási mintát követik.

foreach(SomeType x in SomeDictionary.Values) { }

Az DataSet objektumok objektumok gyűjteményéből DataTable állnak, amelyek többek között gyűjteményekből System.Data.DataColumn és System.Data.DataRow objektumokból állnak. Ezek a gyűjtemények az alaposztályon ICollection keresztül implementálva System.Data.InternalDataCollectionBase vannak.

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

Nevezze át a típust úgy, hogy a megfelelő kifejezéssel utótaggal legyen elnevezett.

Mikor kell letiltani a figyelmeztetéseket?

A Collection utótag használatára vonatkozó figyelmeztetést nyugodtan mellőzheti, ha a típus egy általánosított adatszerkezet, amely bővíthető, vagy amely különböző elemek tetszőleges készletét fogja tárolni. Ebben az esetben az adatstruktúra implementációjáról, teljesítményéről vagy egyéb jellemzőiről hasznos információkat nyújtó név (például BinaryTree) lehet értelme. Azokban az esetekben, amikor a típus egy adott típusú gyűjteményt jelöl (például StringCollection), ne tiltsa le a szabály figyelmeztetését, mert az utótag azt jelzi, hogy a típus egy utasítással foreach számba vehető.

Más utótagok esetén ne tiltsa le a szabály figyelmeztetését. Az utótag lehetővé teszi, hogy a tervezett használat nyilvánvaló legyen a típusnévből.

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 CA1710
// The code that's violating the rule is on this line.
#pragma warning restore CA1710

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.CA1710.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á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 szereplő összes szabályra (elnevezési), amelyekre vonatkoznak. 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 XXXXCAXXXX részét a vonatkozó szabály azonosítójára.

Közvetett alaptípusok kizárása

Beállíthatja, hogy kizárja-e a közvetett alaptípusokat a szabályból. Alapértelmezés szerint ez a beállítás igaz értékre van állítva, ami az elemzést az aktuális alaptípusra korlátozza.

dotnet_code_quality.CA1710.exclude_indirect_base_types = false

További kötelező utótagok

További kötelező utótagokat is megadhat, vagy felülbírálhatja egyes merevlemez-utótagok viselkedését, ha hozzáadja a következő kulcs-érték párot a projekt egyik .editorconfig fájljához:

dotnet_code_quality.CA1710.additional_required_suffixes = [type]->[suffix]

Több érték elválasztása karakterrel | . A típusok a következő formátumok egyikében adhatók meg:

  • Csak típusnév (a névvel rendelkező összes típust tartalmazza, függetlenül attól, hogy milyen típust vagy névteret tartalmaz).
  • A szimbólum dokumentációazonosító-formátumában szereplő teljes nevek opcionális T: előtaggal.

Példák:

Beállítás értéke Összegzés
dotnet_code_quality.CA1710.additional_required_suffixes = MyClass->Class A "MyClass" típustól öröklő összes típusnak rendelkeznie kell az "Osztály" utótagmal.
dotnet_code_quality.CA1710.additional_required_suffixes = MyClass->Class|MyNamespace.IPath->Path A "MyClass"-tól öröklő összes típusnak rendelkeznie kell az "Osztály" utótagtal, és minden olyan típusnak, amely a "MyNamespace.IPath" nevet implementálja, rendelkeznie kell az "Elérési út" utótagtal.
dotnet_code_quality.CA1710.additional_required_suffixes = T:System.Data.IDataReader->{} Felülbírálja a beépített utótagokat. Ebben az esetben az "IDataReader" implementálására szolgáló összes típusnak már nem kell a gyűjteményben végződnie.

CA1711: Az azonosítóknak nem szabad helytelen utótagot adni

Lásd még