Ler en inglés

Compartir por


Uso del cuerpo de expresiones para las propiedades (IDE0025)

Propiedad Valor
Identificador de la regla IDE0025
Título Uso del cuerpo de expresiones para las propiedades
Categoría Estilo
Subcategoría Reglas del lenguaje (miembros con forma de expresión)
idiomas aplicables C#
Opciones csharp_style_expression_bodied_properties

Visión general

Esta regla de estilo se refiere al uso de cuerpos de expresiones frente a cuerpos de bloque para las propiedades.

Opciones

Establezca el valor de la opción asociada para esta regla para especificar si se prefieren los cuerpos de expresión o los cuerpos de bloque para las propiedades y, si se prefieren los cuerpos de expresión, se deberá especificar si solo se prefieren para expresiones de una sola línea.

Para obtener más información sobre la configuración de opciones, vea Formato de opción.

csharp_style_expression_bodied_properties

Propiedad Valor Descripción
nombre de opción csharp_style_expression_bodied_properties
Valores de opción true Se prefieren cuerpos de expresión para las propiedades
when_on_single_line Preferir cuerpos de expresión para las propiedades cuando se trate de una sola línea
false Prefiere cuerpos de bloque para las propiedades
valor de opción predeterminado true
C#
// csharp_style_expression_bodied_properties = true
public int Age => _age;

// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}

Esta regla frente a IDE0027

Esta regla, IDE0025, e IDE0027 (use un cuerpo de expresión para descriptores de acceso) son muy similares. IDE0025 se refiere a la propiedad en su conjunto, mientras que IDE0027 se refiere específicamente a las partes accesorias de la propiedad.

Para una propiedad de solo lectura que simplemente devuelve un valor sin realizar ningún cálculo, si IDE0025 está establecido en csharp_style_expression_bodied_properties = false, pero IDE0027 se establece en csharp_style_expression_bodied_accessors = true, terminará con una propiedad similar a la siguiente:

C#
public int TemperatureF
{
    get => _temp;
}

Pero si establece IDE0025 en csharp_style_expression_bodied_properties = true, la propiedad se simplifica aún más (incluso si establece IDE0027 en csharp_style_expression_bodied_accessors = false):

C#
public int TemperatureF => _temp;

Para una propiedad de lectura y escritura, la diferencia se vuelve un poco más evidente, porque la propiedad no se puede escribir en forma de expresión (porque consta de más de una línea). Por lo tanto, incluso si IDE0025 se establece en csharp_style_expression_bodied_properties = true, todavía termina con llaves, es decir, un cuerpo de bloque.

En los ejemplos siguientes se muestra cómo se ve una propiedad con varias combinaciones de las dos opciones.

C#
// csharp_style_expression_bodied_properties = false
// csharp_style_expression_bodied_accessors = true
public int TemperatureB
{
    get => _temp;
}

// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = true (or false)
public int TemperatureC => _temp;

// csharp_style_expression_bodied_properties = true (or false)
// csharp_style_expression_bodied_accessors = true
public int TemperatureD
{
    get => _temp;
    set => _temp = value;
}

// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = false
public int TemperatureE
{
    get
    {
        return _temp;
    }
    set
    {
        _temp = value;
    }
}

Suprimir una advertencia

Si desea suprimir solo una infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.

C#
#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025

Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none en el archivo de configuración de .

ini
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none

Para deshabilitar todas las reglas de estilo de código, establezca la gravedad de la categoría Style a none en el archivo de configuración .

ini
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Para obtener más información, vea Cómo suprimir advertencias de análisis de código.

Consulte también