Compartilhar via


Regras de estilo de código

A análise de estilo de código do .NET fornece regras que visam manter o estilo consistente em sua base de código. Essas regras têm um prefixo "IDE" na ID da regra.

As regras de estilo de código são organizadas nas seguintes subcategorias:

  • Regras de linguagem e código desnecessárias

    Regras referentes à linguagem C# ou Visual Basic. Por exemplo, você pode especificar regras que consideram o uso de var ao definir variáveis ou se os membros com corpo de expressão são preferenciais. Essa categoria também inclui regras que localizam código desnecessário, por exemplo, código inacessível em métodos ou campos, propriedades ou métodos privados não utilizados.

  • Regras de formatação

    Regras referentes ao layout e a estrutura do seu código para facilitar a leitura. Por exemplo, você pode especificar uma opção de formatação que define se os espaços em blocos de controle são preferenciais ou não.

  • Regras de nomenclatura

    Regras que pertencem à nomenclatura de elementos de código. Por exemplo, você pode especificar que o método async deve ter um sufixo "Async".

  • Regras diversas

    Regras que não pertencem a outras categorias.

Índice

A tabela a seguir lista todas as regras de estilo de código por ID e opções , se houver.

ID da regra Título Opção
IDE0001 Simplificar nome
IDE0002 Simplificar acesso de membro
IDE0003 Remover qualificação this ou Me dotnet_style_qualification_for_field
dotnet_style_qualification_for_property
dotnet_style_qualification_for_method
dotnet_style_qualification_for_event
IDE0004 Remover conversão desnecessária
IDE0005 Remover importação desnecessária
IDE0007 Usar var em vez do tipo explícito csharp_style_var_for_built_in_types
csharp_style_var_when_type_is_apparent
csharp_style_var_elsewhere
IDE0008 Usar o tipo explícito em vez de var csharp_style_var_for_built_in_types
csharp_style_var_when_type_is_apparent
csharp_style_var_elsewhere
IDE0009 Adicionar qualificação this ou Me dotnet_style_qualification_for_field
dotnet_style_qualification_for_property
dotnet_style_qualification_for_method
dotnet_style_qualification_for_event
IDE0010 Adicionar casos ausentes à instrução switch
IDE0011 Adicionar chaves csharp_prefer_braces
IDE0016 Use a expressão throw csharp_style_throw_expression
IDE0017 Usar inicializadores de objeto dotnet_style_object_initializer
IDE0018 Declaração de variável embutida csharp_style_inlined_variable_declaration
IDE0019 Usar padrões correspondentes para evitar as seguido por uma verificação null csharp_style_pattern_matching_over_as_with_null_check
IDE0020 Usar padrões correspondentes para evitar a verificação is seguida por uma conversão (com variável) estilo_de_csharp_para_casamento_de_padrão_em_vez_de_uso_de_is_com_verificação_de_cast
IDE0021 Usar o corpo da expressão para construtores csharp_style_expression_bodied_constructors
IDE0022 Usar o corpo da expressão para métodos métodos_csharp_com_corpo_de_expressão
IDE0023 Usar o corpo da expressão para operadores de conversão csharp_style_expression_bodied_operators
IDE0024 Usar o corpo da expressão para operadores csharp_style_expression_bodied_operators
IDE0025 Usar o corpo da expressão para propriedades csharp_style_expression_bodied_properties
IDE0026 Usar o corpo da expressão para indexadores estilo_csharp_expression_bodied_indexadores
IDE0027 Usar o corpo da expressão para acessadores csharp_style_expression_bodied_accessors
IDE0028 Usar inicializadores de coleção dotnet_style_collection_initializer
dotnet_style_prefer_collection_expression
IDE0029 A verificação nula pode ser simplificada dotnet_style_coalesce_expression
IDE0030 A verificação nula pode ser simplificada dotnet_style_coalesce_expression
IDE0031 Usar tratamento de nulo dotnet_style_null_propagation
IDE0032 Usar a propriedade auto dotnet_style_prefer_auto_properties
IDE0033 Usar o nome de tupla fornecido explicitamente dotnet_style_explicit_tuple_names
IDE0034 Simplificar a expressão default csharp_prefer_simple_default_expression
IDE0035 Remover o código inacessível
IDE0036 Modificadores de ordem ordem_preferida_de_modificadores_csharp
visual_basic_preferred_modifier_order
IDE0037 Usar o nome do membro inferido dotnet_style_prefer_inferred_tuple_names
dotnet_style_prefer_inferred_anonymous_type_member_names
IDE0038 Usar padrões correspondentes para evitar a verificação is seguida por uma conversão (sem variável) estilo_de_csharp_para_casamento_de_padrão_em_vez_de_uso_de_is_com_verificação_de_cast
IDE0039 Usar a função local em vez de lambda csharp_style_prefer_local_over_anonymous_function
IDE0040 Adicionar modificadores de acessibilidade dotnet_style_require_accessibility_modifiers
IDE0041 Usar verificação is null dotnet_style_prefer_is_null_check_over_reference_equality_method
IDE0042 Desconstruir declaração de variável estilo_csharp_declaracao_variavel_deconstruida
IDE0044 Adicionar modificador somente leitura dotnet_style_readonly_field
IDE0045 Usar expressão condicional para atribuição dotnet_style_prefer_conditional_expression_over_assignment (preferência por expressão condicional sobre atribuição)
IDE0046 Usar expressão condicional para retorno dotnet_style_prefer_conditional_expression_over_return
IDE0047 Remover os parênteses desnecessários 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 Adicionar parênteses para esclarecimento 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 Usar palavras-chave de linguagem em vez de nomes de tipo de estrutura para referências de tipo dotnet_style_predefined_type_for_locals_parameters_members
dotnet_style_predefined_type_for_member_access
IDE0050 Converter tipo anônimo em tupla
IDE0051 Remover membro particular não utilizado
IDE0052 Remover membro privado não lido
IDE0053 Usar o corpo da expressão para lambdas csharp_style_expression_bodied_lambdas
IDE0054 Usar atribuição composta dotnet_style_prefer_compound_assignment (preferência de estilo do .NET para atribuições compostas)
IDE0055 Corrigir a formatação (Muitos para listar aqui. Confira Opções de formatação do .NET e Opções de formatação de C#.)
IDE0056 Usar operador de índice csharp_style_preferir_operador_de_índice
IDE0057 Usar operador de intervalo csharp_style_prefer_range_operator
IDE0058 Remover valor de expressão não utilizado csharp_style_unused_value_expression_statement_preference
visual_basic_style_unused_value_expression_statement_preference
IDE0059 Remover atribuição de valor desnecessária csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference
IDE0060 Remover parâmetro não utilizado dotnet_code_quality_unused_parameters
IDE0061 Usar o corpo da expressão para funções locais funções_locais_em_corpo_de_expressão_estilo_csharp
IDE0062 Fazer função local static csharp_prefer_static_local_function
IDE0063 Usar instrução using simples csharp_preferir_declaração_using_simples
IDE0064 Tornar os campos de struct graváveis
IDE0065 Posicionamento da diretiva using csharp_using_directive_placement
IDE0066 Usar a expressão switch csharp_style_prefer_switch_expression
IDE0070 Use System.HashCode.Combine.
IDE0071 Simplificar a interpolação dotnet_style_prefer_simplified_interpolation
IDE0072 Adicionar casos ausentes para a expressão switch
IDE0073 Adicionar cabeçalho de arquivo modelo_de_cabeçalho_de_arquivo
IDE0074 Usar atribuição composta de unir dotnet_style_prefer_compound_assignment (preferência de estilo do .NET para atribuições compostas)
IDE0075 Simplificar a expressão condicional dotnet_style_prefer_simplified_boolean_expressions
IDE0076 Remover global inválido SuppressMessageAttribute
IDE0077 Evitar o destino de formato herdado no SuppressMessageAttribute global
IDE0078 Usar correspondência de padrões csharp_style_prefer_pattern_matching
IDE0079 Remover a supressão desnecessária dotnet_remove_unnecessary_suppression_exclusions
IDE0080 Remover o operador de supressão desnecessário
IDE0081 Remover ByVal
IDE0082 Converter typeof em nameof
IDE0083 Usar padrões correspondentes (operador not) csharp_style_prefer_not_pattern
IDE0084 Usar padrões correspondentes (operador IsNot) visual_basic_style_prefer_isnot_expression
IDE0090 Simplificar a expressão new estilo_csharp_criação_implicita_de_objeto_quando_tipo_é_aparente
IDE0100 Remover operador de igualdade desnecessário
IDE0110 Remover discard desnecessário
IDE0120 Simplificar a expressão LINQ
IDE0121 Simplificar a conversão e a verificação de tipo LINQ
IDE0130 O namespace não corresponde à estrutura de pastas dotnet_style_namespace_match_folder
IDE0140 Simplificar a criação de objeto Estilo_Visual_Basic_prefere_criação_de_objetos_simplificada
IDE0150 Prefira verificação de null em vez de verificação de tipo csharp_style_prefer_null_check_over_type_check
IDE0160 Usar namespace com escopo de bloco csharp_style_namespace_declarations
IDE0161 Usar namespace com escopo de arquivo csharp_style_namespace_declarations
IDE0170 Simplificar o padrão de propriedade csharp_style_prefer_extended_property_pattern
IDE0180 Usar tupla para trocar valores csharp_style_prefer_tuple_swap
IDE0200 Remover a expressão lambda desnecessária csharp_style_prefer_method_group_conversion
IDE0210 Converter em declarações de nível superior csharp_style_prefer_top_level_statements
IDE0211 Converter para o estilo de programa "Program.Main csharp_style_prefer_top_level_statements
IDE0220 Adicionar conversão explícita no loop foreach dotnet_style_prefer_foreach_explicit_cast_in_source
IDE0230 Usar literal de cadeia de caracteres UTF-8 csharp_style_prefer_utf8_string_literals
IDE0240 A diretiva que permite valor nulo é redundante
IDE0241 A diretiva anulável é desnecessária
IDE0250 O struct pode ser feito "readonly" csharp_style_prefer_readonly_struct
IDE0251 O membro pode ser feito "readonly" csharp_style_prefer_readonly_struct_member
IDE0260 Usar correspondência de padrões csharp_style_pattern_matching_over_as_with_null_check
IDE0270 A verificação nula pode ser simplificada dotnet_style_coalesce_expression
IDE0280 Use nameof.
IDE0290 Usar o construtor primário csharp_style_prefer_primary_constructors
IDE0300 Usar expressão de coleção para matriz dotnet_style_prefer_collection_expression
IDE0301 Usar expressão de coleção para vazio dotnet_style_prefer_collection_expression
IDE0302 Usar expressão de coleção para stackalloc dotnet_style_prefer_collection_expression
IDE0303 Use a expressão de coleção para Create() dotnet_style_prefer_collection_expression
IDE0304 Usar expressão de coleção para construtor dotnet_style_prefer_collection_expression
IDE0305 Usar expressão de coleção para fluente dotnet_style_prefer_collection_expression
IDE0306 Usar expressão de coleção para novo dotnet_style_prefer_collection_expression
IDE0320 Tornar a função anônima static csharp_prefer_static_anonymous_function
IDE0330 Prefira 'System.Threading.Lock' csharp_prefer_system_threading_lock
IDE0340 Usar tipo genérico não associado csharp_style_prefer_unbound_generic_type_in_nameof
IDE0350 Usar lambda digitado implicitamente csharp_style_prefer_expressão_lambda_tipada_implicanente
IDE1005 Usar chamada de delegado condicional chamada_condicional_delegada_csharp
IDE1006 Estilos de nomenclatura
IDE3000 Implementar com o Copilot

Observação

Há algumas regras que só aparecem no IDE do Visual Studio e elas dizem respeito a cadeias de caracteres de padrão JSON e de expressão regular. Para obter mais informações, consulte JSON001, JSON002 e RE0001.

Legenda

A tabela a seguir mostra o tipo de informação fornecida para cada regra na documentação de referência.

Elemento Descrição
ID da regra O identificador exclusivo da regra. Usada para configurar a gravidade da regra e suprimir avisos no arquivo de código.
Título O título da regra.
Categoria A categoria da regra.
Subcategoria A subcategoria da regra, como regras de idioma, regras de formatação ou regras de nomenclatura.
Linguagens aplicáveis Linguagens .NET aplicáveis (C# ou Visual Basic), além da versão mínima da linguagem, se aplicável.
Versão introduzida Versão do SDK do .NET ou do Visual Studio quando a regra foi introduzida pela primeira vez.
Opções Todas as opções disponíveis para a regra.

Confira também