1
resposta

Construtor da classe 'Orcamento'

Olá boa tarde!

Uma dúvida: no construtor da classe Orcamento precisa passar o valor?

O valor do orçamento não é a soma dos valores de cada item na lista?

Algo assim estaria corretor?

public class Orcamento 
{
    public double Valor 
    { 
        get
        {
            return Itens.Sum(x => x)
        }
    }

    public IList<Item> Itens { get; private set; }

    public Orcamento() 
    {
        this.Itens = new List<Item>();
    }
    public void AdicionaItem(Item item) 
    {
        Itens.Add(item);
    }
}
1 resposta

Olá Daniel,

o código está correto mas tenho uma pequena ressalva. O Guia de Programação em C# sugere que as propriedades sejam como atributos e não façam códigos muito complexos. No nosso caso, o método Sum() percorre toda a lista de itens para fazer um simples get, o que não é muito indicado.

Nesse caso, poderíamos deixar o valor como uma auto-implemented property que inicia com zero e é alterada quando adicionamos um novo produto:

public double Valor { get; private set; }
public void AdicionaItem(Item item) 
{
        Itens.Add(item);
        this.Valor += item.Valor;
}

Abraços, Alessandro