Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida Como Funciona Interface

Não ficou muito claro pra mim como funciona o interface "IAvaliavel", especialmente nessa questão da implementação. O que essas linhas estão chamando e como ele funciona na implementação das demais classes.

internal interface IAvaliavel { void AdicionarNota(Avaliacao nota); double Media { get; } }

1 resposta
solução!

Oi Gustavo, tudo bem?

Interfaces em C# são um tipo de contrato que define um conjunto de métodos e propriedades que uma classe deve implementar. No caso da interface "IAvaliavel", ela define que qualquer classe que a implemente deve ter o método "AdicionarNota(Avaliacao nota)" e a propriedade "Media".

Vamos ver como isso funciona na prática:

  1. void AdicionarNota(Avaliacao nota);: Este é um método que deve ser implementado na classe. Ele não tem corpo na interface, apenas a assinatura. A classe que implementa a interface deve fornecer a implementação desse método. No caso do seu curso, esse método provavelmente adiciona uma nota a um objeto (como um álbum ou uma música).

  2. double Media { get; }: Esta é uma propriedade que deve ser implementada na classe. Ela só tem um getter, o que significa que você pode obter o valor, mas não pode definir o valor diretamente. A classe que implementa a interface deve fornecer a implementação dessa propriedade. No contexto do seu curso, essa propriedade provavelmente calcula e retorna a média das notas de um objeto.

Por exemplo, se tivermos uma classe "Album" que implementa a interface "IAvaliavel", ela pode parecer algo assim:

public class Album : IAvaliavel
{
    private List<Avaliacao> notas = new List<Avaliacao>();
    
    public void AdicionarNota(Avaliacao nota)
    {
        notas.Add(nota);
    }
    
    public double Media
    {
        get
        {
            return notas.Average(nota => nota.Valor);
        }
    }
}

Neste exemplo, a classe "Album" implementa a interface "IAvaliavel" adicionando notas a uma lista interna e calculando a média dessas notas quando a propriedade "Media" é acessada.

Um abraço e bons estudos.