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

System.Attribute

Attributo

System.EventArgs

EventArgs

System.Exception

Eccezione

System.Collections.ICollection

Collection

System.Collections.IDictionary

Dictionary

System.Collections.IEnumerable

Collection

System.Collections.Queue

Collection o Queue

System.Collections.Stack

Collection o Stack

System.Collections.Generic.ICollection<T>

Collection

System.Collections.Generic.IDictionary<TKey, TValue>

Dictionary

System.Data.DataSet

DataSet

System.Data.DataTable

Collection o DataTable

System.IO.Stream

Stream

System.Security.IPermission

Autorizzazione

System.Security.Policy.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 System.Data.DataColumn e System.Data.DataRow, tra gli altri.Queste raccolte implementano ICollection tramite la classe base System.Data.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

Riferimenti

Attribute Usage Guidelines

Altre risorse

Eventi e delegati