Condividi tramite


CA1710: Gli identificatori devono contenere il suffisso corretto

TypeName

IdentifiersShouldHaveCorrectSuffix

CheckId

CA1710

Category

Microsoft.Naming

Breaking Change

Breaking

Causa

Un identificatore non contiene il suffisso corretto.

Descrizione della regola

Per convenzione i nomi dei tipi che estendono determinati tipi di base o che implementano determinate interfacce o dei tipi derivati da questi tipi contengono un suffisso associato al tipo di base o all'interfaccia.

Le convenzioni di denominazione forniscono un aspetto comune alle librerie che si avvalgono di Common Language Runtime.In questo modo si riduce la curva di apprendimento necessaria per le nuove librerie software e i clienti possono confidare nel fatto che la libreria è stata sviluppata da un esperto nello sviluppo di codice gestito.

Nella tabella riportata di seguito sono elencati i tipi di base e le interfacce a cui sono associati suffissi.

Tipo di base/Interfaccia

Suffisso

Attribute

Attributo

EventArgs

EventArgs

Exception

Eccezione

ICollection

Collection

IDictionary

Dictionary

IEnumerable

Collection

Queue

Collection o Queue

Stack

Collection o Stack

ICollection

Collection

IDictionary

Dictionary

DataSet

DataSet

DataTable

Collection o DataTable

Stream

Stream

IPermission

Autorizzazione

IMembershipCondition

Condizione

Delegato del gestore eventi.

EventHandler

Per i tipi che implementano ICollection e rappresentano un tipo generalizzato di struttura di dati, ad esempio dizionario, stack o coda, sono consentiti nomi che forniscono informazioni significative relative all'utilizzo previsto del tipo.

I tipi che implementano ICollection e rappresentano una raccolta di elementi specifici, presentano nomi che terminano con la parola "Collection".Una raccolta di oggetti Queue, ad esempio, presenterebbe il nome "QueueCollection".Il suffisso "Collection" indica che i membri della raccolta possono essere enumerati utilizzando l'istruzione foreach (For Each in Visual Basic).

I tipi che implementano IDictionary presentano nomi che terminano con la parola "Dictionary" anche se il tipo implementa anche IEnumerable o ICollection.Le convenzioni di denominazione dei suffissi "Collection" e "Dictionary" consentono agli utenti di fare distinzione tra i due modelli di enumerazione riportati di seguito.

I tipi con il suffisso "Collection" seguono questo modello di enumerazione.

    foreach(SomeType x in SomeCollection) { }

I tipi con il suffisso "Dictionary" seguono questo modello di enumerazione.

    foreach(SomeType x in SomeDictionary.Values) { }

Un oggetto DataSet è dato da una raccolta di oggetti DataTable formati a loro volta da raccolte di oggetti DataColumn e DataRow, tra gli altri.Queste raccolte implementano ICollection tramite la classe base InternalDataCollectionBase.

Come correggere le violazioni

Rinominare il tipo in modo da utilizzare come suffisso il termine corretto.

Esclusione di avvisi

L'esclusione di un avviso è sicura per utilizzare il suffisso "Collection" se il tipo è una struttura dei dati generalizzata che può essere estesa o che contiene un set arbitrario di elementi diversi.In questo caso, può essere opportuno utilizzare un nome che fornisca informazioni significative relative all'implementazione, alle prestazioni o ad altre caratteristiche della struttura di dati, ad esempio BinaryTree.Nei casi in cui il tipo rappresenta una raccolta di un tipo specifico, ad esempio StringCollection, non escludere un avviso da questa regola poiché il suffisso indica che il tipo può essere enumerato con un'istruzione foreach.

Per gli altri suffissi, non escludere un avviso da questa regola.Il suffisso consente di rendere evidente l'utilizzo previsto dal nome del tipo.

Regole correlate

CA1711: Gli identificatori non devono contenere un suffisso non corretto

Vedere anche

Altre risorse

Attribute Usage Guidelines

Eventi e delegati