Condividi tramite


Regole di stile del codice

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 var quando 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 di formattazione

    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 di denominazione

    Regole relative alla denominazione degli elementi di codice. Ad esempio, è possibile specificare che async i nomi dei metodi devono avere un suffisso "Async".

  • Regole varie

    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
visual_basic_preferred_modifier_order
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 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
IDE1005 Usare la chiamata condizionale del delegato csharp_style_conditional_delegate_call
IDE1006 Stili di denominazione
IDE3000 Implementare con Copilot

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.

Vedi anche