Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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. |
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. |
|
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. |
|
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. |
|
È necessario che tutti gli argomenti di riferimento passati a metodi visibili esternamente vengano sottoposti a verifica per accertarsi che non corrispondano a valori Null. |
|
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. |
|
Il nome di un campo di istanza inizia con "s_" o il nome di un campo statico (Shared in Visual Basic) inizia con "m_". |
|
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. |
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. |
|
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. |
|
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. |
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. |
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. |
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. |