Reglas innecesarias y de lenguaje

Las reglas del lenguaje de estilo de código afectan a la forma en la que se usan varias construcciones de lenguajes de programación de .NET, por ejemplo, los modificadores y los paréntesis.

En esta categoría también se incluyen las reglas que identifican partes de la base de código que no son necesarias y se pueden refactorizar o quitar. La presencia de código innecesario indica uno o varios de los problemas siguientes:

  • Legibilidad: código que degrada innecesariamente la legibilidad.
  • Mantenimiento: código que ya no se utiliza después de la refactorización y que se mantiene innecesariamente.
  • Rendimiento: cálculo innecesario que no tiene efectos secundarios y genera una sobrecarga de rendimiento innecesaria.
  • Funcionalidad: problema funcional en el código que hace que el código necesario sea redundante. Por ejemplo, IDE0060 marca los parámetros no usados en los que el método omite accidentalmente un parámetro de entrada.

La reglas de lenguaje se dividen en las siguientes categorías:

  • Reglas de estilo de .NET: reglas que se aplican tanto a C# como a Visual Basic. Los nombres de las opciones para estas reglas comienzan por el prefijo dotnet_style_.
  • Reglas de estilo de C#: reglas que son específicas del código C#. Los nombres de las opciones para estas reglas comienzan por el prefijo csharp_style_.
  • Reglas de estilo de Visual Basic: reglas que son específicas del código Visual Basic. Los nombres de las opciones para estas reglas comienzan por el prefijo visual_basic_style_.

Formato de opción

La mayoría de las reglas de lenguaje tienen una o varias opciones asociadas para personalizar el estilo preferido. Por ejemplo, Uso de la instrucción "using" simple (IDE0063) tiene la opción csharp_prefer_simple_using_statement asociada que le permite definir si prefiere una declaración using o una instrucción using. La regla aplica las opciones que elija en un nivel especificado (por ejemplo, advertencia o error).

Las opciones de las reglas de lenguaje se pueden especificar en un archivo de configuración con el siguiente formato:

option_name = value (Visual Studio 2019 y versiones posteriores)

or

option_name = value:severity

  • Valor

    Para cada regla de lenguaje, deberá especificar un valor que defina si se prefiere o no el estilo, o en qué circunstancias. Muchas reglas aceptan un valor de true (se prefiere este estilo) o false (no se prefiere este estilo). Otras reglas aceptan valores como when_on_single_line o never.

  • Gravedad (opcional en Visual Studio 2019 y versiones posteriores)

    En la segunda parte de la regla, se especifica el nivel de gravedad de esta. En .NET 9 y versiones posteriores, siempre se respeta la gravedad, es decir, dentro de los IDE de desarrollo y durante las compilaciones de línea de comandos. En .NET 8 y versiones anteriores, esta configuración de gravedad solo se respeta dentro de los IDE de desarrollo, como Visual Studio, y no durante la compilación.

    Si usa el SDK de .NET 8 o una versión anterior y quiere que se respete la gravedad en tiempo de compilación, puede hacerlo de una de estas dos maneras:

    • Establezca analysisLevel ><o <AnalysisLevelStyle> propiedad 9.0 en o superior, o en .preview
    • Establezca la gravedad mediante la sintaxis de configuración de gravedad basada en el identificador de regla para los analizadores en su lugar. La sintaxis adopta la forma dotnet_diagnostic.<rule ID>.severity = <severity>, por ejemplo, dotnet_diagnostic.IDE0040.severity = warning. Para más información, vea Nivel de gravedad.

Sugerencia

A partir de Visual Studio 2019, puede configurar reglas de estilo de código desde el menú de bombilla Acciones rápidas después de que se produzca una infracción de estilo.

Índice de regla

Las reglas de código innecesarias y de lenguaje se clasifican aún más en subcategorías, como preferencias de nivel de expresión, preferencias de bloque de código y preferencias de modificadores.

Preferencias de la directiva using

Reglas de estilo de .NET (C# y Visual Basic):

Reglas de estilo de C#:

Preferencias de bloques de código

Reglas de estilo de C#:

Miembros con forma de expresión

Reglas de estilo de C#:

Preferencias de nivel de expresión

Reglas de estilo de .NET (C# y Visual Basic):

Reglas de estilo de C#:

Reglas de estilo de Visual Basic:

Preferencias de campo

Reglas de estilo de .NET (C# y Visual Basic):

Preferencias de palabra clave de lenguaje frente a tipos de marco

Reglas de estilo de .NET (C# y Visual Basic):

Preferencias de modificadores

Reglas de estilo de .NET (C# y Visual Basic):

Reglas de estilo de C#:

Preferencias de nueva línea

  • Permitir varias líneas en blanco (IDE2000)
  • Permitir instrucciones insertadas en la misma línea (IDE2001)
  • Permitir líneas en blanco entre llaves consecutivas (IDE2002)
  • Permitir una instrucción inmediatamente después del bloque (IDE2003)
  • Permitir una línea en blanco después de dos puntos en el inicializador del constructor (IDE2004)
  • Permitir línea en blanco después del token en la expresión condicional (IDE2005)
  • Permitir línea en blanco después del token en la expresión de flecha (IDE2006)

Preferencias de la comprobación de NULL

Reglas de estilo de C#:

Preferencias de parámetros

Reglas de estilo de .NET (C# y Visual Basic):

Preferencias de paréntesis

Reglas de estilo de .NET (C# y Visual Basic):

Preferencias de coincidencia de patrones

Reglas de estilo de C#:

Preferencias de eliminación

Reglas de estilo de .NET (C# y Visual Basic):

Preferencias This. y me.

Reglas de estilo de .NET (C# y Visual Basic):

Preferencias var

Reglas de estilo de C#:

Consulte también