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 Title Opzione
IDE0001 Semplificare il nome
IDE0002 Semplificare l'accesso ai membri
IDE0003 Rimuovere this o Me qualificare 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 this o Me qualificare 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 csharp_style_inlined_variable_declaration
IDE0019 Usare i criteri di ricerca per evitare as l'esecuzione di un null controllo csharp_style_pattern_matching_over_as_with_null_check
IDE0020 Usare criteri di ricerca per evitare is il controllo seguito da un cast (con variabile) csharp_style_pattern_matching_over_is_with_cast_check
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 csharp_style_expression_bodied_indexers
IDE0027 Usare il corpo dell'espressione per le funzioni di accesso csharp_style_expression_bodied_accessors
IDE0028 Usare gli inizializzatori di insieme dotnet_style_collection_initializer
dotnet_style_prefer_collection_expression (solo C#)
IDE0029 Il controllo Null può essere semplificato dotnet_style_coalesce_expression
IDE0030 Il controllo Null può essere semplificato dotnet_style_coalesce_expression
IDE0031 Usare la propagazione null dotnet_style_null_propagation
IDE0032 Usare la proprietà auto 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_prefer_simple_default_expression
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 criteri di ricerca per evitare is il controllo seguito da un cast (senza variabile) csharp_style_pattern_matching_over_is_with_cast_check
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 Use is null check dotnet_style_prefer_is_null_check_over_reference_equality_method
IDE0042 Dichiarazione di variabile deconstruct csharp_style_deconstructed_variable_declaration
IDE0044 Aggiungere un modificatore readonly dotnet_style_readonly_field
IDE0045 Usare l'espressione condizionale per l'assegnazione dotnet_style_prefer_conditional_expression_over_assignment
IDE0046 Usare l'espressione condizionale per return dotnet_style_prefer_conditional_expression_over_return
IDE0047 Rimuovere parentesi non necessarie dotnet_style_parentheses_in_arithmetic_binary_operators
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 dotnet_style_parentheses_in_arithmetic_binary_operators
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
visual_basic_style_unused_value_expression_statement_preference
IDE0059 Rimuovere l'assegnazione di valori non necessari csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference
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 Rendere la funzione locale static csharp_prefer_static_local_function
IDE0063 Usare un'istruzione semplice using csharp_prefer_simple_using_statement
IDE0064 Rendere scrivibili i campi struct
IDE0065 using posizionamento delle direttive csharp_using_directive_placement
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 Usare l'assegnazione composta 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 la destinazione del formato legacy in globale SuppressMessageAttribute
IDE0078 Usa i criteri di ricerca csharp_style_prefer_pattern_matching
IDE0079 Rimuovere l'eliminazione 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 criteri di ricerca (not operatore) csharp_style_prefer_not_pattern
IDE0084 Usare criteri di ricerca (IsNot operatore) visual_basic_style_prefer_isnot_expression
IDE0090 Semplificare l'espressione new csharp_style_implicit_object_creation_when_type_is_apparent
IDE0100 Rimuovere l'operatore di uguaglianza non necessario
IDE0110 Rimuovi discard non necessario
IDE0120 Semplificare l'espressione LINQ
IDE0130 Lo spazio dei nomi non corrisponde alla struttura delle cartelle dotnet_style_namespace_match_folder
IDE0140 Semplificare la creazione di oggetti visual_basic_style_prefer_simplified_object_creation
IDE0150 Preferisce null controllare il tipo csharp_style_prefer_null_check_over_type_check
IDE0160 Usare lo spazio dei nomi con ambito blocco csharp_style_namespace_declarations
IDE0161 Usare lo spazio dei nomi con ambito file csharp_style_namespace_declarations
IDE0170 Semplificare il modello di proprietà csharp_style_prefer_extended_property_pattern
IDE0180 Usare 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 Eseguire la conversione in istruzioni di primo livello csharp_style_prefer_top_level_statements
IDE0211 Converti in programma di stile 'Program.Main' csharp_style_prefer_top_level_statements
IDE0220 Aggiungere 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 Lo struct può essere reso '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
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 la matrice dotnet_style_prefer_collection_expression
IDE0301 Usare l'espressione di raccolta per vuoto 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 generatore dotnet_style_prefer_collection_expression
IDE0305 Usare l'espressione di raccolta per Fluent 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
IDE1005 Usare la chiamata del delegato condizionale csharp_style_conditional_delegate_call
IDE1006 Stili di denominazione

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.
Title Titolo della regola.
Categoria Categoria per la 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