Simplificar o padrão de propriedade (IDE0170)

Propriedade Valor
ID da regra IDE0170
Título Simplificar o padrão de propriedade
Categoria Estilo
Subcategoria Regras de linguagem (preferências de padrões correspondentes)
Linguagens aplicáveis C#
Opções csharp_style_prefer_extended_property_pattern

Visão geral

Essa regra de estilo sinaliza o uso de um padrão aninhado em um padrão de propriedade. Um padrão aninhado pode ser simplificado para usar um padrão de propriedade estendido no qual subpadrões de propriedade são usados para referenciar membros aninhados. Os padrões de propriedade estendidos melhoram a legibilidade do código.

Opções

As opções especificam o comportamento que você quer que a regra imponha. Para obter informações sobre como configurar as opções, consulte Formato da opção.

csharp_style_prefer_extended_property_pattern

Propriedade Valor Descrição
Nome da opção csharp_style_prefer_extended_property_pattern
Valores da opção true Prefira o padrão de propriedade estendida.
false Desabilita a regra.
Valor da opção padrão true

Exemplo

public record Point(int X, int Y);
public record Segment(Point Start, Point End);

// Violates IDE0170.
static bool IsEndOnXAxis(Segment segment) =>
    segment is { Start: { Y: 0 } } or { End: { Y: 0 } };

// Fixed code.
static bool IsEndOnXAxis(Segment segment) =>
    segment is { Start.Y: 0 } or { End.Y: 0 };

Suprimir um aviso

Se você quiser suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite a regra.

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

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

[*.{cs,vb}]
dotnet_diagnostic.IDE0170.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, confira Como suprimir avisos de análise de código.

Confira também