DEV Community

Juarez Júnior for Develop4Us

Posted on • Edited on

Dica C#: Extended Property Patterns com Switch

Vamos explorar os Extended Property Patterns, introduzidos no C# 10, que permitem combinar condições mais complexas em propriedades de objetos durante o pattern matching. Veja o exemplo no código abaixo.

public class Produto
{
    public string Nome { get; set; }
    public decimal Preco { get; set; }
}

public class Program
{
    public static void Main()
    {
        Produto produto = new Produto { Nome = "Caneta", Preco = 5.99m };

        string resultado = produto switch
        {
            { Preco: > 10.00m } => "Produto caro",
            { Preco: <= 10.00m } => "Produto acessível",
            _ => "Preço desconhecido"
        };

        Console.WriteLine(resultado);
    }
}
Enter fullscreen mode Exit fullscreen mode

Explicação:
Com os Extended Property Patterns, você pode usar o pattern matching para acessar propriedades aninhadas de um objeto e aplicar condições diretamente a essas propriedades. Isso simplifica a verificação de condições complexas em objetos e torna o código mais legível e expressivo. No exemplo acima, utilizamos essa funcionalidade para verificar se um objeto Produto tem um Preco maior que um valor específico, tudo isso dentro de uma única expressão switch.

Código fonte: GitHub

Espero que essa dica ajude você a utilizar os Extended Property Patterns para escrever código mais expressivo e eficiente! Até a próxima.

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

While many AI coding tools operate as simple command-response systems, Qodo Gen 1.0 represents the next generation: autonomous, multi-step problem-solving agents that work alongside you.

Read full post →

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay