CA1710: Identifikátory by měly mít správnou příponu
TypeName |
IdentifiersShouldHaveCorrectSuffix |
CheckId |
CA1710 |
Kategorie |
Microsoft.Naming |
Narušující změna |
Narušující |
Příčina
Identifikátor nemá správnou příponu.
Popis pravidla
Podle konvence by měly názvy typů, které rozšiřují některé základní typy nebo určitá rozhraní, nebo typů odvozené z těchto typů, mít příponu, která je přidružená těmto typům nebo rozhraním.
Jmenné konvence poskytují společný vzhled knihovnám, které pracují s modulem CLR (Common Language Runtime).To snižuje křivku učení, která je vyžadována pro naučení nových softwarových knihoven a zvyšuje důvěru zákazníků, že knihovna byla vyvinuta osobou, která má odborné znalosti s vývojem spravovaného kódu.
Následující tabulka uvádí základní typy a rozhraní, která mají přidružené přípony.
Základní typ/rozhraní |
Přípona |
---|---|
Atribut |
|
EventArgs |
|
Výjimka |
|
Collection |
|
Slovník |
|
Collection |
|
Collection nebo Queue |
|
Collection nebo Stack |
|
Collection |
|
Slovník |
|
Objekt DataSet |
|
Collection nebo DataTable |
|
Stream |
|
Oprávnění |
|
Podmínka |
|
Delegát obslužné rutiny události. |
EventHandler |
Typy, které implementují rozhraní ICollection a jsou zobecněným typem datové struktury jako například slovník, zásobník nebo fronta, mají povoleno mít název, který poskytuje smysluplné informace o jejich zamýšleném typu.
Typy, které implementují rozhraní ICollection a jsou kolekcemi specifických položek, mají názvy končící slovem "Collection".Například kolekce objektů Queue by měla název "QueueCollection".Přípona "Collection" znamená, že členy kolekce lze projít pomocí příkazu foreach (For Each v jazyce Visual Basic).
Název typů, které implementují rozhraní IDictionary, končí slovem "Dictionary" i v případě, že také implementují rozhraní IEnumerable nebo ICollection.Konvence názvů přípon "Collection" a "Dictionary" umožňují uživatelům rozlišit mezi dvěma následujícími vzory výčtů.
Typy s příponou "Collection" podle následujíc tento vzoru výčtu.
foreach(SomeType x in SomeCollection) { }
Typy s příponou "Dictionary" následují tento vzor výčtu.
foreach(SomeType x in SomeDictionary.Values) { }
Objekt DataSet se skládá z kolekce objektů DataTable, které se mimo jiné také skládají z kolekce objektů DataColumn a DataRow.Tyto kolekce implementují rozhraní ICollection prostřednictvím základní třídy InternalDataCollectionBase.
Jak vyřešit porušení
Přejmenujte typ tak, aby jeho přípona odpovídala správnému termínu.
Kdy potlačit upozornění
Je bezpečné potlačit varování pro použití přípony "Collection", pokud je typ zobecněnou datovou strukturou, která může být rozšiřitelná nebo bude obsahovat libovolnou množinu různorodých položek.V tomto případě může dávat smysl název, který poskytuje smysluplné informace o implementaci, výkonu nebo jiné charakteristice datové struktury (např. BinaryTree).V případech, kdy typ představuje kolekci určitého typu (například třída StringCollection), není vhodné potlačovat upozornění pro toto pravidlo, protože přípona označuje možnost jeho průchodu pomocí příkazu foreach.
Pro další přípony není vhodné upozornění pro toto pravidlo potlačovat.Přípona umožňuje zviditelnění zamýšleného použití pomocí názvu typu.
Související pravidla
CA1711: Identifikátory by neměly mít nesprávnou příponu