DEV Community

Juarez Júnior for Develop4Us

Posted on • Edited on

Dica C#: Membros de Dados em Interfaces

Vamos falar sobre Membros de Dados em Interfaces, introduzidos no C# 12, que permitem que você defina membros de dados diretamente dentro de interfaces, tornando-as mais poderosas e flexíveis. Veja o exemplo no código abaixo.

public interface IProduto
{
    string Nome { get; set; }
    decimal Preco { get; set; }

    // Membro de dados com valor padrão
    decimal Imposto => 0.15m;

    decimal CalcularPrecoComImposto() => Preco + (Preco * Imposto);
}

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

public class Program
{
    public static void Main()
    {
        IProduto produto = new Produto { Nome = "Caneta", Preco = 10.00m };
        Console.WriteLine($"Produto: {produto.Nome}, Preço com imposto: {produto.CalcularPrecoComImposto():C}");
    }
}
Enter fullscreen mode Exit fullscreen mode

Explicação:

No C# 12, é possível declarar membros de dados diretamente dentro de interfaces. Isso significa que além de métodos e propriedades abstratas, uma interface agora pode ter campos de dados concretos, oferecendo uma forma de armazenar estado compartilhado ou valores padrão entre as implementações. Essa nova funcionalidade permite que as interfaces sirvam não apenas como contratos de comportamento, mas também para manter dados comuns entre as implementações.

Isso é útil em cenários onde várias classes compartilham um mesmo conjunto de dados, mas ainda precisam implementar comportamentos específicos. Com essa abordagem, o código fica mais organizado, já que as interfaces podem fornecer tanto comportamento quanto dados padrão para suas implementações.

Código fonte: GitHub

Espero que essa dica ajude você a utilizar Membros de Dados em Interfaces para organizar melhor o seu código! Até a próxima.

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

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

Okay