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.
L'analisi dello stile di codice .NET fornisce regole che mirano a mantenere uno stile coerente nella codebase. Queste regole hanno un prefisso "IDE" nell'ID regola.
Le regole di tipo codice sono organizzate nelle sottocategorie seguenti:
Linguaggio e regole di codice non necessarie
Regole relative al linguaggio C# o Visual Basic. Ad esempio, è possibile specificare regole che riguardano l'uso di
varquando si definiscono le variabili o se i membri con corpo di espressione sono preferiti. Questa categoria include anche regole che trovano codice non necessario, ad esempio codice non raggiungibile all'interno di metodi o campi privati inutilizzati, proprietà o metodi.-
Regole relative al layout e alla struttura del codice per semplificare la lettura. Ad esempio, è possibile specificare un'opzione di formattazione che definisce se gli spazi nei blocchi di controllo sono preferiti o meno.
-
Regole relative alla denominazione degli elementi di codice. Ad esempio, è possibile specificare che
asynci nomi dei metodi devono avere un suffisso "Async". -
Regole che non appartengono ad altre categorie.
Indice
Nella tabella seguente sono elencate tutte le regole di stile del codice in base all'ID e alle opzioni, se presenti.
| ID regola | Titolo | Opzione |
|---|---|---|
| IDE0001 | Semplificare il nome | |
| IDE0002 | Semplificare l'accesso ai membri | |
| IDE0003 | Rimuovere this o Me qualifica |
dotnet_style_qualification_for_field dotnet_style_qualification_for_property dotnet_style_qualification_for_method dotnet_style_qualification_for_event |
| IDE0004 | Rimuovere un cast non necessario | |
| IDE0005 | Rimuovere l'importazione non necessaria | |
| IDE0007 | Usare var anziché il tipo esplicito |
csharp_style_var_for_built_in_types csharp_style_var_when_type_is_apparent csharp_style_var_elsewhere |
| IDE0008 | Usare il tipo esplicito invece di var |
csharp_style_var_for_built_in_types csharp_style_var_when_type_is_apparent csharp_style_var_elsewhere |
| IDE0009 | Aggiungere la qualifica this o Me |
dotnet_style_qualification_for_field dotnet_style_qualification_for_property dotnet_style_qualification_for_method dotnet_style_qualification_for_event |
| IDE0010 | Aggiungere casi mancanti all'istruzione switch | |
| IDE0011 | Aggiungi parentesi graffe | csharp_prefer_braces |
| IDE0016 | Usare l'espressione throw | csharp_style_throw_expression |
| IDE0017 | Usare gli inizializzatori di oggetto | dotnet_style_object_initializer |
| IDE0018 | Dichiarazione di variabile inline | dichiarazione_della_variabile_inline_stile_csharp |
| IDE0019 | Usare la corrispondenza dei modelli per evitare as seguita da un null controllo. |
csharp_style_pattern_matching_over_as_with_null_check (stile C# per il pattern matching anziché "as" con controllo null) |
| IDE0020 | Usare il pattern matching per evitare il controllo is seguito da un cast (con variabile) |
stile_di_pattern_matching_csharp_su_is_con_controllo_cast |
| IDE0021 | Usare il corpo dell'espressione per i costruttori | csharp_style_expression_bodied_constructors |
| IDE0022 | Usare il corpo dell'espressione per i metodi | csharp_style_expression_bodied_methods |
| IDE0023 | Usare il corpo dell'espressione per gli operatori di conversione | csharp_style_expression_bodied_operators |
| IDE0024 | Usare il corpo dell'espressione per gli operatori | csharp_style_expression_bodied_operators |
| IDE0025 | Usare il corpo dell'espressione per le proprietà | csharp_style_expression_bodied_properties |
| IDE0026 | Usare il corpo dell'espressione per gli indicizzatori | indicizzatori_con_espressione |
| IDE0027 | Usare il corpo dell'espressione per le funzioni di accesso | csharp_style_expression_bodied_accessors |
| IDE0028 | Usare gli inizializzatori di raccolta |
dotnet_style_collection_initializer dotnet_style_prefer_collection_expression |
| IDE0029 | Il controllo Null può essere semplificato | dotnet_style_coalesce_expression |
| IDE0030 | Il controllo Null può essere semplificato | dotnet_style_coalesce_expression |
| IDE0031 | Utilizzare la propagazione di null | dotnet_style_null_propagation |
| IDE0032 | Usare la proprietà automatica | dotnet_style_prefer_auto_properties |
| IDE0033 | Usare il nome della tupla fornito in modo esplicito | dotnet_style_explicit_tuple_names |
| IDE0034 | Semplificare l'espressione default |
`csharp_preferisci_espressione_default_semplice` |
| IDE0035 | Rimuovere il codice non raggiungibile | |
| IDE0036 | Modificatori degli ordini |
csharp_preferred_modifier_order ordine_preferito_modificatore_visual_basic |
| IDE0037 | Usare il nome del membro dedotto |
dotnet_style_prefer_inferred_tuple_names dotnet_style_prefer_inferred_anonymous_type_member_names |
| IDE0038 | Usare la corrispondenza di modelli per evitare is il controllo seguito da un cast (senza variabile) |
stile_di_pattern_matching_csharp_su_is_con_controllo_cast |
| IDE0039 | Usare la funzione locale anziché lambda | csharp_style_prefer_local_over_anonymous_function |
| IDE0040 | Aggiungi i modificatori di accessibilità | dotnet_style_require_accessibility_modifiers |
| IDE0041 | Utilizza il controllo di nullità | dotnet_style_prefer_is_null_check_over_reference_equality_method |
| IDE0042 | Scomponi la dichiarazione della variabile | stile_di_dichiarazione_di_variabile_decomposta_csharp |
| IDE0044 | Aggiungere un modificatore "readonly" | dotnet_style_readonly_field (impostazione di stile per i campi di sola lettura in .NET) |
| IDE0045 | Usare l'espressione condizionale per l'assegnazione | dotnet_style_prefer_conditional_expression_over_assignment |
| IDE0046 | Usare l'espressione condizionale per il ritorno | dotnet_style_prefer_conditional_expression_over_return |
| IDE0047 | Rimuovere parentesi non necessarie |
stile_dotnet_parentesi_negli_operatori_binari_aritmetici dotnet_style_parentheses_in_relational_binary_operators dotnet_style_parentheses_in_other_binary_operators dotnet_style_parentheses_in_other_operators |
| IDE0048 | Aggiungere parentesi per maggiore chiarezza |
stile_dotnet_parentesi_negli_operatori_binari_aritmetici dotnet_style_parentheses_in_relational_binary_operators dotnet_style_parentheses_in_other_binary_operators dotnet_style_parentheses_in_other_operators |
| IDE0049 | Usare parole chiave del linguaggio anziché nomi dei tipi di framework per i riferimenti ai tipi |
dotnet_style_predefined_type_for_locals_parameters_members dotnet_style_predefined_type_for_member_access |
| IDE0050 | Conversione di tipi anonimi in tupla | |
| IDE0051 | Rimuovere un membro privato inutilizzato | |
| IDE0052 | Rimuovere un membro privato non letto | |
| IDE0053 | Usare il corpo dell'espressione per le espressioni lambda | csharp_style_expression_bodied_lambdas |
| IDE0054 | Usare l'assegnazione composta | dotnet_style_prefer_compound_assignment |
| IDE0055 | Correzione della formattazione | (Troppi per elencare qui. Vedere Opzioni di formattazione .NET e opzioni di formattazione C#. |
| IDE0056 | Usare l'operatore index | csharp_style_prefer_index_operator |
| IDE0057 | Usare l'operatore range | csharp_style_prefer_range_operator |
| IDE0058 | Rimuovere il valore dell'espressione inutilizzata |
csharp_style_unused_value_expression_statement_preference preferenza_dichiarazione_espressione_valore_non_usato_stile_visual_basic |
| IDE0059 | Rimuovere l'assegnazione di valori non necessari |
csharp_style_unused_value_assignment_preference preferenza_assegnazione_valore_non_utilizzato_stile_visual_basic |
| IDE0060 | Rimuovere il parametro inutilizzato | dotnet_code_quality_unused_parameters |
| IDE0061 | Usare il corpo dell'espressione per le funzioni locali | funzioni locali a corpo di espressione (csharp_style_expression_bodied_local_functions) |
| IDE0062 | Rendi la funzione locale static |
csharp_prefer_static_local_function |
| IDE0063 | Usa una dichiarazione semplice using |
csharp_preferisci_una_dichiarazione_using_semplice |
| IDE0064 | Rendere scrivibili i campi struct | |
| IDE0065 |
using posizionamento delle direttive |
direttiva_posizionamento_utilizzo_csharp |
| IDE0066 | Usare l'espressione switch | csharp_style_prefer_switch_expression |
| IDE0070 | Utilizzare System.HashCode.Combine. | |
| IDE0071 | Semplifica l'interpolazione | dotnet_style_prefer_simplified_interpolation |
| IDE0072 | Aggiungere casi mancanti per cambiare espressione | |
| IDE0073 | Usare l'intestazione del file | file_header_template |
| IDE0074 | Utilizzare l'assegnazione composta con l'operatore coalesce | dotnet_style_prefer_compound_assignment |
| IDE0075 | Semplificare l'espressione condizionale | dotnet_style_prefer_simplified_boolean_expressions |
| IDE0076 | Rimuovi globale non valido SuppressMessageAttribute |
|
| IDE0077 | Evitare il formato legacy come destinazione globale SuppressMessageAttribute |
|
| IDE0078 | Usa i criteri di ricerca | csharp_style_prefer_pattern_matching |
| IDE0079 | Rimuovere la soppressione non necessaria | dotnet_remove_unnecessary_suppression_exclusions |
| IDE0080 | Rimuovere un operatore di eliminazione non necessario | |
| IDE0081 | Rimozione di ByVal |
|
| IDE0082 | Convertire typeof in nameof |
|
| IDE0083 | Usare la corrispondenza di modelli (not operatore) |
csharp_stile_preferisci_modello_non |
| IDE0084 | Usare la corrispondenza di modelli (IsNot operatore) |
visual_basic_style_prefer_isnot_expression |
| IDE0090 | Semplificare l'espressione new |
csharp_style_implicit_object_creation_when_type_is_apparent (stile implicito di creazione oggetti in C# quando il tipo è apparente) |
| IDE0100 | Rimuovere l'operatore di uguaglianza non necessario | |
| IDE0110 | Rimuovi scarto non necessario | |
| IDE0120 | Semplificare l'espressione LINQ | |
| IDE0121 | Semplificare il controllo del tipo e del cast di LINQ | |
| IDE0130 | Lo spazio dei nomi non corrisponde alla struttura delle cartelle | dotnet_style_namespace_match_folder |
| IDE0140 | Semplificare la creazione di oggetti | Preferenza per la creazione semplificata di oggetti nello stile Visual Basic |
| IDE0150 | Preferisce null controllare il tipo |
csharp_stile_preferire_controllo_null_fuori_controllo_tipo |
| IDE0160 | Usare uno spazio dei nomi a livello di blocco | csharp_style_namespace_declarations |
| IDE0161 | Usare uno spazio dei nomi limitato a livello di file | csharp_style_namespace_declarations |
| IDE0170 | Semplificare il modello di proprietà | stile_csharp_preferisci_schema_proprietà_estesa |
| IDE0180 | Utilizzare la tupla per scambiare i valori | csharp_style_prefer_tuple_swap |
| IDE0200 | Rimuovere un'espressione lambda non necessaria | csharp_style_prefer_method_group_conversion |
| IDE0210 | Convertire in istruzioni di primo livello | Preferenza per le dichiarazioni a livello superiore in Csharp |
| IDE0211 | Converti in programma di stile 'Program.Main' | Preferenza per le dichiarazioni a livello superiore in Csharp |
| IDE0220 | Aggiungi cast esplicito nel ciclo foreach | dotnet_style_prefer_foreach_explicit_cast_in_source |
| IDE0230 | Usare un valore letterale stringa UTF-8 | csharp_style_prefer_utf8_string_literals |
| IDE0240 | La direttiva nullable è ridondante | |
| IDE0241 | La direttiva nullable non è necessaria | |
| IDE0250 | La struttura può essere resa 'readonly' | csharp_style_prefer_readonly_struct |
| IDE0251 | Il membro può essere reso 'readonly' | csharp_style_prefer_readonly_struct_member |
| IDE0260 | Usa i criteri di ricerca | csharp_style_pattern_matching_over_as_with_null_check (stile C# per il pattern matching anziché "as" con controllo null) |
| IDE0270 | Il controllo Null può essere semplificato | dotnet_style_coalesce_expression |
| IDE0280 | Utilizzare nameof. |
|
| IDE0290 | Usare il costruttore primario | csharp_style_prefer_primary_constructors |
| IDE0300 | Usare l'espressione di raccolta per l'array | dotnet_style_prefer_collection_expression |
| IDE0301 | Usare un'espressione di raccolta per elementi vuoti | dotnet_style_prefer_collection_expression |
| IDE0302 | Usare l'espressione di raccolta per stackalloc | dotnet_style_prefer_collection_expression |
| IDE0303 | Usare l'espressione di raccolta per Create() |
dotnet_style_prefer_collection_expression |
| IDE0304 | Usare l'espressione di raccolta per il costruttore | dotnet_style_prefer_collection_expression |
| IDE0305 | Utilizzare l'espressione di raccolta per Fluent | dotnet_style_prefer_collection_expression |
| IDE0306 | Usare l'espressione di raccolta per creare nuovi oggetti | dotnet_style_prefer_collection_expression |
| IDE0320 | Rendere la funzione anonima static |
csharp_prefer_static_anonymous_function |
| IDE0330 | Preferisce 'System.Threading.Lock' | csharp_prefer_system_threading_lock |
| IDE0340 | Usare un tipo generico non associato | csharp_style_prefer_unbound_generic_type_in_nameof |
| IDE0350 | Usare un'espressione lambda tipizzata in modo implicito | csharp_style_prefer_implicitly_typed_lambda_expression |
| IDE0360 | Semplificare la funzione di accesso alle proprietà | csharp_style_prefer_simple_property_accessors |
| IDE0370 | Rimuovere la soppressione non necessaria | |
| IDE0380 | Rimuovere il modificatore "unsafe" non necessario | |
| IDE1005 | Usare la chiamata condizionale del delegato | csharp_style_conditional_delegate_call |
| IDE1006 | Stili di denominazione | |
| IDE2000 | Evitare più righe vuote | dotnet_style_allow_multiple_blank_lines_experimental† |
| IDE2001 | Le istruzioni incorporate devono trovarsi nella propria riga | csharp_style_allow_embedded_statements_on_same_line_experimental† |
| IDE2002 | Le parentesi graffe consecutive non devono avere una riga vuota tra di esse | csharp_style_allow_blank_lines_between_consecutive_braces_experimental† |
| IDE2003 | Riga vuota obbligatoria tra blocco e istruzione successiva | dotnet_style_allow_statement_immediately_after_block_experimental† |
| IDE2004 | Riga vuota non consentita dopo i due punti inizializzatore del costruttore | csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental† |
| IDE2005 | Riga vuota non consentita dopo il token di espressione condizionale | csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental† |
| IDE2006 | Riga vuota non consentita dopo il token della clausola di espressione freccia | csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental† |
| IDE3000 | Implementare con Copilot |
† Le regole sono sperimentali e soggette a modifiche o rimozione.
Nota
Esistono alcune regole che vengono visualizzate solo nell'IDE di Visual Studio e riguardano stringhe di criteri json e di espressioni regolari. Per altre informazioni, vedere JSON001, JSON002 e RE0001.
Legenda
Nella tabella seguente viene illustrato il tipo di informazioni fornite per ogni regola nella documentazione di riferimento.
| Articolo | Descrizione |
|---|---|
| ID regola | Identificatore univoco per la regola. Usato per configurare la gravità della regola e eliminare gli avvisi nel file di codice. |
| Titolo | Titolo della regola. |
| Categoria | Categoria della regola. |
| Sottocategoria | Sottocategoria per la regola, ad esempio Regole lingua, Regole di formattazione o Regole di denominazione. |
| Linguaggi applicabili | Linguaggi .NET applicabili (C# o Visual Basic), insieme alla versione minima del linguaggio, se applicabile. |
| Versione introdotta | Versione di .NET SDK o Visual Studio quando la regola è stata introdotta per la prima volta. |
| Opzioni | Tutte le opzioni disponibili per la regola. |