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
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 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
async
i 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 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. |