top of page

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}");
    }
}

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.



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

0 visualização

Posts recentes

Ver tudo

Dica C#: Default Interface Methods

Vamos falar sobre uma novidade do C# 12: Default Interface Methods. Esse recurso permite que interfaces contenham implementações de...

Dica C#: Global Using Directives

Vamos para uma dica do C# 10: Global Using Directives. Com essa funcionalidade, você pode definir diretivas using globais que se aplicam...

bottom of page