Reglas de estilo de código

El análisis de estilo de código de .NET proporciona reglas que pretenden mantener un estilo coherente en el código base. Estas reglas tienen un prefijo "IDE" en el identificador de regla.

Las reglas de estilo de código se organizan en las subcategorías siguientes:

  • Reglas de código innecesarias y de 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. Esta categoría también incluye reglas que buscan código innecesario, por ejemplo, código inaccesible dentro de métodos o campos privados, propiedades o métodos no utilizables.

  • 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 una opción de formato que defina si se prefieren o no espacios en los 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 muestran todas las reglas de estilo de código por id. 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
dotnet_style_prefer_collection_expression (solo C#)
IDE0029 Se puede simplificar la comprobación nula dotnet_style_coalesce_expression
IDE0030 Se puede simplificar la comprobación nula 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_prefer_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 (Demasiados para enumerar aquí. Vea Opciones de formato de .NET y Opciones de formato de C#).
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
IDE0120 Simplificación de la expresión LINQ
IDE0130 El espacio de nombres no coincide con la estructura de carpetas dotnet_style_namespace_match_folder
IDE0140 Simplificación de la creación de objetos visual_basic_style_prefer_simplified_object_creation
IDE0150 Preferencia por la comprobación null frente a la comprobación de tipo csharp_style_prefer_null_check_over_type_check
IDE0160 Uso del espacio de nombres con ámbito de bloque csharp_style_namespace_declarations
IDE0161 Uso de espacios de nombres con ámbito de archivo csharp_style_namespace_declarations
IDE0170 Simplificación del patrón de propiedad csharp_style_prefer_extended_property_pattern
IDE0180 Uso de la tupla para intercambiar valores csharp_style_prefer_tuple_swap
IDE0200 Quitar expresión lambda innecesaria csharp_style_prefer_method_group_conversion
IDE0210 Conversión a instrucciones de nivel superior csharp_style_prefer_top_level_statements
IDE0211 Convertir al programa de estilo "Program.Main" csharp_style_prefer_top_level_statements
IDE0220 Adición de conversión explícita en bucle foreach dotnet_style_prefer_foreach_explicit_cast_in_source
IDE0230 Usar literal de cadena UTF-8 csharp_style_prefer_utf8_string_literals
IDE0240 La directiva que admite un valor NULL es redundante
IDE0241 La directiva que admite un valor NULL no es necesaria
IDE0250 La estructura se puede convertir en "readonly" csharp_style_prefer_readonly_struct
IDE0251 Los miembros pueden establecerse como "solo lectura" csharp_style_prefer_readonly_struct_member
IDE0260 Uso de coincidencia de patrones csharp_style_pattern_matching_over_as_with_null_check
IDE0270 Se puede simplificar la comprobación nula dotnet_style_coalesce_expression
IDE0280 Use nameof
IDE0290 Uso del constructor principal csharp_style_prefer_primary_constructors
IDE0300 Uso de la expresión de colección para matrices dotnet_style_prefer_collection_expression
IDE0301 Usar la expresión de colección para un valor vacío dotnet_style_prefer_collection_expression
IDE0302 Uso de la expresión de colección para stackalloc dotnet_style_prefer_collection_expression
IDE0303 Uso de la expresión de colección para Create() dotnet_style_prefer_collection_expression
IDE0304 Usar la expresión de colección para el generador dotnet_style_prefer_collection_expression
IDE0305 Uso de la expresión de colección para fluent dotnet_style_prefer_collection_expression
IDE1005 Uso de la llamada a delegado condicional csharp_style_conditional_delegate_call
IDE1006 Estilos de nomenclatura

Nota:

Hay algunas reglas que solo se muestran en el IDE de Visual Studio y que se refieren a cadenas de patrones de expresiones regulares y JSON. Para obtener más información, consulte JSON001, JSON002 y RE0001.

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. 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.
Opciones Todas las opciones disponibles para la regla.

Consulte también