Condividi tramite


Set di regole di analisi del codice relativo alle regole estese delle linee guida di progettazione Microsoft

Il set di regole Regole estese delle linee guida di progettazione Microsoft amplia le regole base delle linee guida di progettazione per aumentare i problemi di usabilità e manutenibilità segnalati. Viene posta particolare attenzione sulle linee guida di denominazione. È necessario considerare di includere questo set di regole se il progetto include codice di libreria o se si desidera applicare gli standard più elevati per la scrittura di codice di facile manutenibilità.

Le Regole estese delle linee guida di progettazione Microsoft includono tutte le Regole base delle linee guida di progettazione Microsoft. Le Regole base delle linee guida di progettazione Microsoft includono tutte le Regole minime consigliate Microsoft. Per ulteriori informazioni, vedere Set di regole di analisi del codice relativo alle regole base delle linee guida di progettazione Microsoft e Set di regole di analisi del codice relativo alle regole minime consigliate Microsoft.

Nella tabella seguente vengono descritte tutte le regole del set Regole estese delle linee guida di progettazione Microsoft.

Regola

Descrizione

CA1020: Evitare l'utilizzo di spazi dei nomi con un numero ridotto di tipi

Accertarsi che sia presente un'organizzazione logica per ognuno degli spazi dei nomi e che sia presente un motivo valido per inserire tipi in uno spazio dei nomi scarsamente compilato.

CA1021: Evitare parametri out

Il passaggio di tipi per riferimento (mediante out o ref) richiede esperienza nell'utilizzo dei puntatori, nonché la conoscenza delle differenze tra tipi di valore e tipi di riferimento e dei metodi di gestione con più valori restituiti. Inoltre, la differenza tra parametri out e ref non è nota a tutti.

CA1040: Evitare l'utilizzo di interfacce vuote

Le interfacce definiscono membri che forniscono un comportamento o un contratto di utilizzo. La funzionalità descritta dall'interfaccia può essere adottata da qualsiasi tipo, indipendentemente dal punto in cui il tipo è visualizzato nella gerarchia di ereditarietà. Un tipo implementa un'interfaccia fornendo implementazioni per i membri dell'interfaccia. Un'interfaccia vuota non definisce alcun membro. Di conseguenza, non definisce un contratto implementabile.

CA1045: Non passare i tipi per riferimento

Il passaggio di tipi per riferimento (mediante out o ref) richiede esperienza nell'utilizzo dei puntatori, nonché la conoscenza delle differenze tra tipi di valore e tipi di riferimento e dei metodi di gestione con più valori restituiti. Gli architetti di librerie destinate a un pubblico generico non devono aspettarsi che gli utenti siano in grado di utilizzare i parametri out o ref.

CA1062: Convalidare gli argomenti di metodi pubblici

È necessario che tutti gli argomenti di riferimento passati a metodi visibili esternamente vengano sottoposti a verifica per accertarsi che non corrispondano a valori Null.

CA1501: Evitare ereditarietà eccessiva

Un tipo si trova oltre il quarto livello di annidamento nella gerarchia di ereditarietà. Le gerarchie di tipi eccessivamente annidate possono comportare difficoltà di comprensione e gestione.

CA1504: Controllare i nomi dei campi fuorvianti

Il nome di un campo di istanza inizia con "s_" o il nome di un campo statico (Shared in Visual Basic) inizia con "m_".

CA1505: evitare codice non manutenibile

Un tipo o metodo presenta un valore di indice di gestibilità basso. Un indice di manutenibilità basso indica che un tipo o un metodo è probabilmente difficile da gestire e sarebbe un buon candidato per la riprogettazione.

CA1506: Evitare un numero eccessivo di accoppiamenti di classi

Questa regola misura l'accoppiamento tra classi contando il numero di riferimenti al tipo univoci contenuti in un tipo o metodo.

CA1700: Non denominare 'Reserved' i valori di enumerazione

Questa regola presuppone che un membro di enumerazione con un nome che contiene la parola "reserved" non sia attualmente utilizzato, ma sia un segnaposto che dovrà essere rinominato o rimosso in una versione futura. La ridenominazione o rimozione di un membro è ritenuta una modifica sostanziale.

CA1701: Le parole composte di una stringa di risorsa devono essere digitate correttamente con distinzione tra maiuscole e minuscole

Ogni parola nella stringa di risorsa è suddivisa in token basati sulla distinzione tra maiuscole e minuscole. Ogni combinazione di due token contigui viene controllata in base alla libreria del correttore ortografico Microsoft. Se riconosciuta, la parola produce una violazione della regola.

CA1702: Le parole composte devono essere digitate correttamente con distinzione tra maiuscole e minuscole

Il nome di un identificatore contiene più parole, fra cui almeno una che sembra essere composta e digitata in modo non corretto con distinzione tra maiuscole e minuscole.

CA1703: Le stringhe di risorsa devono essere digitate correttamente

Una stringa di risorsa contiene una o più parole che non sono riconosciute dalla libreria del correttore ortografico Microsoft.

CA1704: Gli identificatori devono essere digitati correttamente

Il nome di un identificatore visibile esternamente contiene una o più parole che non sono riconosciute dalla libreria del correttore ortografico Microsoft.

CA1707: Gli identificatori non devono contenere caratteri di sottolineatura

Per convenzione i nomi degli identificatori non contengono il carattere di sottolineatura (_). In base a questa regola vengono controllati spazi dei nomi, tipi, membri e parametri.

CA1709: Gli identificatori devono essere digitati correttamente con distinzione tra maiuscole e minuscole

Per convenzione i nomi di parametro sono basati sulla convenzione Camel, mentre i nomi di spazio dei nomi, tipo e membro utilizzano la convenzione Pascal.

CA1710: Gli identificatori devono contenere il suffisso corretto

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.

CA1711: Gli identificatori non devono contenere un suffisso non corretto

Per convenzione, solo i nomi di tipi che estendono determinati tipi di base o che implementano determinate interfacce o i tipi derivati da questi tipi devono terminare con suffissi specifici riservati. Gli altri nomi di tipi non devono utilizzare questi suffissi riservati.

CA1712: Non utilizzare nomi di tipo come prefisso nei valori di enumerazione

I nomi dei membri di enumerazione non hanno come prefisso il nome del tipo poiché si prevede che le informazioni sul tipo vengano fornite dagli strumenti di sviluppo.

CA1713: Non utilizzare il prefisso Before o After negli eventi

Il nome di un evento inizia con "Before" o "After". Per denominare eventi correlati generati in una sequenza specifica, utilizzare i tempi verbali presente o passato per indicare la posizione relativa nella sequenza di azioni.

CA1714: Le enumerazioni con Flags devono avere nomi plurali

Un'enumerazione pubblica dispone dell'attributo System.FlagsAttribute e il nome non termina per "s". Ai tipi contrassegnati con FlagsAttribute sono assegnati nomi plurali perché tale attributo indica che è possibile specificare più valori.

CA1715: Gli identificatori devono contenere il prefisso corretto

Il nome di un'interfaccia visibile esternamente non inizia con una "I" maiuscola. Il nome di un parametro di tipo generico su un tipo o metodo visibile esternamente non inizia con una "T" maiuscola.

CA1717: Solo le enumerazioni con FlagsAttribute devono avere nomi plurali

In base alle convenzioni di denominazione, un nome plurale in un'enumerazione indica che è possibile specificare più valori di enumerazione contemporaneamente.

CA1719: I nomi dei parametri non devono corrispondere ai nomi dei membri

Un nome di parametro deve comunicare il significato di un parametro e un nome di membro deve comunicare il significato di un membro. Le progettazioni in cui questi nomi coincidono sono rare. Assegnare a un parametro lo stesso nome del relativo membro non è intuitiva e rende più complesso l'utilizzo della libreria.

CA1720: Gli identificatori non devono contenere nomi di tipo

Il nome di un parametro in un membro visibile esternamente contiene un nome di tipo di dati oppure il nome di un membro visibile esternamente contiene un nome di tipo di dati specifico del linguaggio.

CA1721: I nomi delle proprietà non devono corrispondere ai metodi get

Il nome di un membro pubblico o protetto inizia con "Get" e corrisponde in altro modo al nome di una proprietà pubblica o protetta. " Le proprietà e i metodi "Get" devono avere nomi che distinguano chiaramente la loro funzione.

CA1722: Gli identificatori non devono contenere il prefisso non corretto

Per convenzione, solo determinati elementi di programmazione presentano nomi che iniziano con un prefisso specifico.

CA1724: I nomi dei tipi non devono corrispondere agli spazi dei nomi

I nomi dei tipi non devono corrispondere ai nomi degli spazi dei nomi definiti nella libreria di classi .NET Framework. La violazione di questa regola può ridurre l'utilizzabilità della libreria.

CA1725: I nomi dei parametri devono corrispondere alla dichiarazione di base

Una denominazione coerente dei parametri in una gerarchia di override aumenta la funzionalità degli override di metodo. Un nome di parametro in un metodo derivato diverso dal nome nella dichiarazione di base può provocare confusione sulla natura del metodo, ovvero se si tratta di un override del metodo di base o di un nuovo overload del metodo.

CA1726: Utilizzare termini preferiti

Il nome di un identificatore visibile esternamente include un termine per il quale esiste un termine alternativo preferito. In alternativa, il nome include il termine "Flag" o "Flags".

CA2204: I valori letterali devono essere digitati in modo corretto

Una stringa letterale in un corpo del metodo contiene una o più parole che non sono riconosciute dalla libreria del correttore ortografico Microsoft.