Reglas de estilo de código

El análisis de estilo de código de .NET proporciona reglas que pretenden mantener un estilo de código coherente en el código base. Estas reglas tienen un prefijo "IDE" en el identificador de regla. La mayoría de las reglas tienen opciones asociadas para personalizar el estilo preferido. Las reglas se organizan en las subcategorías siguientes:

  • Reglas del lenguaje

    Reglas relativas al lenguaje C# o Visual Basic. Por ejemplo, puede especificar reglas relativas al uso de var al definir variables, o bien si se prefieren miembros con forma de expresión.

  • Reglas de código innecesario

    Reglas que pertenecen a código innecesario que indica un posible problema de legibilidad, mantenimiento, rendimiento o funcional. Por ejemplo, el código inaccesible dentro de métodos o campos privados, propiedades o métodos no utilizados es código innecesario.

  • Reglas de formato

    Reglas relativas al diseño y la estructura del código para que sea más fácil de leer. Por ejemplo, puede especificar reglas que tienen en cuenta las llaves Allman o si se prefieren espacios en bloques de control.

  • Reglas de nomenclatura

    Reglas relacionadas con la nomenclatura de los elementos de código. Por ejemplo, puede especificar que los nombres de método async deben tener un sufijo "Async".

  • Reglas varias

    Reglas que no pertenecen a otras categorías.

Índice

En la tabla siguiente se incluyen todas las reglas de estilo de código por identificador y opciones, si las hay.

Id. de regla Título Opción
IDE0001 Simplificación del nombre
IDE0002 Simplificación del acceso a miembros
IDE0003 Eliminación de la calificación this o Me dotnet_style_qualification_for_field
dotnet_style_qualification_for_property
dotnet_style_qualification_for_method
dotnet_style_qualification_for_event
IDE0004 Quitar conversión innecesaria
IDE0005 Eliminación de importaciones innecesarias
IDE0007 Uso de var en lugar del tipo explícito csharp_style_var_for_built_in_types
csharp_style_var_when_type_is_apparent
csharp_style_var_elsewhere
IDE0008 Uso de un tipo explícito en lugar de var csharp_style_var_for_built_in_types
csharp_style_var_when_type_is_apparent
csharp_style_var_elsewhere
IDE0009 Adición de la calificación this o Me dotnet_style_qualification_for_field
dotnet_style_qualification_for_property
dotnet_style_qualification_for_method
dotnet_style_qualification_for_event
IDE0010 Adición de los casos que faltan a la instrucción switch
IDE0011 Agregar llaves csharp_prefer_braces
IDE0016 Uso de la expresión throw csharp_style_throw_expression
IDE0017 Usar inicializadores de objeto dotnet_style_object_initializer
IDE0018 Declaración de variables alineadas csharp_style_inlined_variable_declaration
IDE0019 Uso de la coincidencia de patrones para evitar as seguida de una comprobación null csharp_style_pattern_matching_over_as_with_null_check
IDE0020 Uso de la coincidencia de patrones para evitar la comprobación de is seguida de una conversión (con variable) csharp_style_pattern_matching_over_is_with_cast_check
IDE0021 Uso del cuerpo de expresiones para los constructores csharp_style_expression_bodied_constructors
IDE0022 Uso del cuerpo de expresiones para los métodos csharp_style_expression_bodied_methods
IDE0023 Uso del cuerpo de expresiones para los operadores de conversión csharp_style_expression_bodied_operators
IDE0024 Uso del cuerpo de expresiones para los operadores csharp_style_expression_bodied_operators
IDE0025 Uso del cuerpo de expresiones para las propiedades csharp_style_expression_bodied_properties
IDE0026 Uso del cuerpo de expresiones para los indizadores csharp_style_expression_bodied_indexers
IDE0027 Uso del cuerpo de expresiones para los descriptores de acceso csharp_style_expression_bodied_accessors
IDE0028 Usar inicializadores de colección dotnet_style_collection_initializer
IDE0029 Uso de la expresión de fusión (tipos que no aceptan valores NULL) dotnet_style_coalesce_expression
IDE0030 Uso de la expresión de fusión (tipos que aceptan valores NULL) dotnet_style_coalesce_expression
IDE0031 Uso de la propagación de valores NULL dotnet_style_null_propagation
IDE0032 Uso de la propiedad automática dotnet_style_prefer_auto_properties
IDE0033 Uso del nombre de tupla proporcionado explícitamente dotnet_style_explicit_tuple_names
IDE0034 Simplificación de la expresión default csharp_prefer_simple_default_expression
IDE0035 Quitar código inaccesible
IDE0036 Orden de los modificadores csharp_preferred_modifier_order
visual_basic_preferred_modifier_order
IDE0037 Uso del nombre de miembro inferido dotnet_style_prefer_inferred_tuple_names
dotnet_style_prefer_inferred_anonymous_type_member_names
IDE0038 Uso de la coincidencia de patrones para evitar la comprobación de is seguida de una conversión (sin variable) csharp_style_pattern_matching_over_is_with_cast_check
IDE0039 Uso de funciones locales en lugar de expresiones lambda csharp_style_pattern_local_over_anonymous_function
IDE0040 Agregar modificadores de accesibilidad dotnet_style_require_accessibility_modifiers
IDE0041 Uso de la comprobación de valores NULL dotnet_style_prefer_is_null_check_over_reference_equality_method
IDE0042 Deconstrucción de la declaración de variables csharp_style_deconstructed_variable_declaration
IDE0044 Adición del modificador de solo lectura dotnet_style_readonly_field
IDE0045 Uso de expresiones condicionales para la asignación dotnet_style_prefer_conditional_expression_over_assignment
IDE0046 Uso de expresiones condicionales para la devolución dotnet_style_prefer_conditional_expression_over_return
IDE0047 Eliminación de paréntesis innecesarios 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 Adición de paréntesis para claridad 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 Uso de palabras clave del lenguaje en lugar de nombres de tipos de marco para referencias de tipo dotnet_style_predefined_type_for_locals_parameters_members
dotnet_style_predefined_type_for_member_access
IDE0050 Conversión de un tipo anónimo para tupla
IDE0051 Eliminación de miembros privados no utilizados
IDE0052 Eliminación de miembros privados sin leer
IDE0053 Uso del cuerpo de expresiones para expresiones lambda csharp_style_expression_bodied_lambdas
IDE0054 Uso de la asignación compuesta dotnet_style_prefer_compound_assignment
IDE0055 Corrección del formato
IDE0056 Uso del operador de índice csharp_style_prefer_index_operator
IDE0057 Uso del operador de rango csharp_style_prefer_range_operator
IDE0058 Eliminación de valores de expresión sin usar csharp_style_unused_value_expression_statement_preference
visual_basic_style_unused_value_expression_statement_preference
IDE0059 Eliminación de la asignación de valores innecesarios csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference
IDE0060 Quitar parámetro no utilizado dotnet_code_quality_unused_parameters
IDE0061 Uso del cuerpo de expresiones para las funciones locales csharp_style_expression_bodied_local_functions
IDE0062 Conversión de la función local en estática csharp_prefer_static_local_function
IDE0063 Uso de la instrucción using simple csharp_prefer_simple_using_statement
IDE0064 Conversión de los campos de estructura en grabables
IDE0065 Colocación de la directiva using csharp_using_directive_placement
IDE0066 Uso de la expresión "switch" csharp_style_prefer_switch_expression
IDE0070 Use System.HashCode.Combine
IDE0071 Simplificación de la interpolación dotnet_style_prefer_simplified_interpolation
IDE0072 Adición de casos que faltan a la expresión switch
IDE0073 Uso del encabezado de archivo file_header_template
IDE0074 Uso de la asignación compuesta de fusión dotnet_style_prefer_compound_assignment
IDE0075 Simplificar una expresión condicional dotnet_style_prefer_simplified_boolean_expressions
IDE0076 Eliminación de SuppressMessageAttribute global no válido
IDE0077 Evitar el destino de formato heredado en SuppressMessageAttribute global
IDE0078 Uso de coincidencia de patrones csharp_style_prefer_pattern_matching
IDE0079 Eliminación de una supresión innecesaria dotnet_remove_unnecessary_suppression_exclusions
IDE0080 Eliminación del operador de supresión innecesario
IDE0081 Se eliminó ByVal.
IDE0082 Convertir typeof en nameof
IDE0083 Uso de la coincidencia de patrones (operador not) csharp_style_prefer_not_pattern
IDE0084 Uso de la coincidencia de patrones (operador IsNot) visual_basic_style_prefer_isnot_expression
IDE0090 Simplificación de la expresión new csharp_style_implicit_object_creation_when_type_is_apparent
IDE0100 Eliminación del operador de igualdad innecesario
IDE0110 Eliminación de descarte innecesario
IDE0140 Simplificación de la creación de objetos visual_basic_style_prefer_simplified_object_creation
IDE1005 Uso de la llamada a delegado condicional csharp_style_conditional_delegate_call
IDE1006 Estilos de nomenclatura

Leyenda

En la tabla siguiente se muestra el tipo de información que se proporciona para cada regla en la documentación de referencia.

Elemento Descripción
Identificador de la regla Identificador único de la regla. El identificador de regla se usa para configurar la gravedad de la regla y suprimir las advertencias en el archivo de código.
Título Título de la regla.
Categoría Categoría de la regla.
Subcategoría Subcategoría de la regla, como Reglas de lenguaje, Reglas de formato o Reglas de nomenclatura.
Lenguajes aplicables Lenguajes de .NET aplicables (C# o Visual Basic), junto con la versión mínima del lenguaje, si procede.
Versión introducida Versión del SDK de .NET o Visual Studio la primera vez que se ha introducido la regla.

Para cada opción de la regla, se proporciona la información siguiente.

Elemento Descripción
Nombre de la opción Nombre de la opción de estilo de código para la regla, si la hay. Las opciones para personalizar el estilo se especifican en un archivo EditorConfig.
Valores de opción Valores de la opción de estilo de código para la regla, si los hay.
Valor de opción predeterminado Valor predeterminado de la opción de estilo de código para la regla, si lo hay.
Ejemplos Ejemplos del estilo de código correspondiente a la opción.

Consulte también