Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
| Propriedade | Valor |
|---|---|
| ID da regra | IDE0025 |
| Título | Usar corpo de expressão para propriedades |
| Categoria | Estilo |
| Subcategoria | Regras linguísticas (membros com corpo de expressão) |
| Idiomas aplicáveis | C# |
| Opções | csharp_style_expression_bodied_properties |
Visão geral
Esta regra de estilo diz respeito ao uso de corpos de expressão versus corpos de bloco para propriedades.
Opções
Defina o valor da opção associada para esta regra para especificar se corpos de expressão ou corpos de bloco para propriedades são preferidos e, se corpos de expressão são preferidos, se eles são preferidos apenas para expressões de linha única.
Para obter mais informações sobre como configurar opções, consulte Formato de opção.
csharp_style_expression_bodied_properties
| Propriedade | Valor | Descrição |
|---|---|---|
| Nome da opção | csharp_style_expression_bodied_properties | |
| Valores de opção | true |
Preferir corpos de expressão para propriedades |
when_on_single_line |
Prefira corpos de expressão para propriedades quando estas forem de uma única linha | |
false |
Prefira corpos de bloco para propriedades | |
| Valor da opção padrão | true |
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
Esta regra versus IDE0027
Esta regra, IDE0025e IDE0027 (Usar corpo de expressão para acessadores) são muito semelhantes.
IDE0025 diz respeito à propriedade como um todo, enquanto IDE0027 diz respeito especificamente às partes acessórias da propriedade.
Para uma propriedade somente leitura que simplesmente retorna um valor sem fazer nenhum cálculo, se IDE0025 estiver definido como csharp_style_expression_bodied_properties = false mas IDE0027 estiver definido como csharp_style_expression_bodied_accessors = true, você acabará com uma propriedade semelhante a esta:
public int TemperatureF
{
get => _temp;
}
Mas se você definir IDE0025 para csharp_style_expression_bodied_properties = true, a propriedade é simplificada ainda mais (mesmo se você definir IDE0027 para csharp_style_expression_bodied_accessors = false):
public int TemperatureF => _temp;
Para uma propriedade de leitura-gravação, a diferença torna-se um pouco mais aparente, porque a propriedade não pode ser escrita de maneira com corpo de expressão (porque consiste em mais de uma linha). Então, mesmo que IDE0025 esteja definido para csharp_style_expression_bodied_properties = true, você ainda acaba com chavetas, isto é, um corpo de bloco.
Os exemplos a seguir mostram a aparência de uma propriedade com várias combinações das duas opções.
// 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 um aviso
Se você quiser suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desativar e, em seguida, reativar a regra.
#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
Para desabilitar a regra para um arquivo, pasta ou projeto, defina sua gravidade como none no arquivo de configuração .
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none
Para desabilitar todas as regras de estilo de código, defina a severidade da categoria Style como none no arquivo de configuração .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.