Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
| 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 |
// 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:
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):
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.
// 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.
#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 .
[*.{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 .
[*.{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.