2
respostas

Problema ao tentar retornar o valor total do estoque

boa tarde, estou tendo dificuldade na hora de mostrar o valor total do estoque,quando eu início ele mostra a mensagem que eu coloquei, so que o valor ele não aparece nada, fica só um espaço em branco, sei que é bem simples esse de resolver mas nao to conseguindo achar o problema.

Meu codigo:

public class Program
    {
        static void Main(string[] args)
        {

            Produtos prod = new Produtos("Escova de pentear pet", 22, 7, 3334441);
            Produtos prod2 = new Produtos("Maquina de tosar", 4, 255, 2231094);
            Produtos prod3 = new Produtos("Shampool para pet ", 15, 5, 3098873);



            Console.WriteLine("Valor total é : ", Produtos.ValorTotalEstoque);


            Console.ReadLine();

        }


    }
public class Produtos
    {
        public string Nome { get; }
        public int  Quantidade { get; }
        public double Valor { get; }
        public long Codigo { get; }
        public static double ValorTotalEstoque { get;private set; }



        public Produtos(string nome, int quantidade, double valor, long codigo)
        {
            Nome = nome;
            Quantidade = quantidade;
            Valor = valor * quantidade;
            Codigo = codigo;

            ValorTotalEstoque += valor;
        }



    }
2 respostas

Ja encontrei o erro, eu esqueci de atribuir um valor a variavel ValorTotalEstoque, dps que eu coloquei public static double ValorTotalEstoque{ get;private set; } = 0 ele funcionou , acho q nao se pode usar (+=) quando uma variavel está vazia , porque nao temo como incrementar algo que esta fazio. por favor, me corrija se meu rasciocinio estiver errado.

Na real o problema no seu código é que você não mandou printar o parametro do WriteLine. Segue o exemplo:

Produtos prod = new Produtos("Escova de pentear pet", 22, 7, 3334441);
Produtos prod2 = new Produtos("Maquina de tosar", 4, 255, 2231094);
Produtos prod3 = new Produtos("Shampool para pet ", 15, 5, 3098873);

Console.WriteLine("Valor total é : {0}", Produtos.ValorTotalEstoque);

Sobre o +=. O double começa com zero, então não tem problema se não inicializar a variável.