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

[Dúvida] Projeto - estoque

Estoque.cs

public class Estoque
{
    //classe estoque
    public string Nome { get; set; }

    //lista da classe Produto, que representa o estoque
    public List<Produto> estoque = new List<Produto>();

    //adicionar produto recebendo Produto - produto como parametro
    public void AdicionarProduto(Produto produto)
    {
        estoque.Add(produto);
    }

    public void ListarProduto()
    {
        // para cada variavel produto no estoque
        foreach (var produto in estoque)
        {
            Console.WriteLine($"nome: {produto.Nome}");
        }
    }
}

Program.cs

//instancia da classe Produto
Produto produto1 = new Produto();
produto1.Nome = "laranja";

Produto produto2 = new Produto();
produto2.Nome = "uva";

//instancia da classe Estoque
Estoque estoquePereciveis = new Estoque();
estoquePereciveis.Nome = "Estoque de Perecíveis";

//adicionando esse produto no estoque de pereciveis
estoquePereciveis.AdicionarProduto(produto1);
estoquePereciveis.AdicionarProduto(produto2);

//listando produtos na lista de estoque perecivel
estoquePereciveis.ListarProduto();

Produto.cs

public class Produto
{
    public string Nome { get; set; }
}

Dúvida

senti dificuldade ao realizar sozinha e gostaria de saber se essa é a lógica certa a seguir. além disso, uma dúvida específica é:

pq posso fazer assim estoquePereciveis.AdicionarProduto(produto1);

mas assim não? estoquePereciveis.Add(Produto produto1);

1 resposta
solução!

Olá, tudo bem?

Então, respondendo seu pergunta sobre o nome da função, pode ser "Add()" sim, basta colocar esse nome na função, no caso ficaria assim:

    //adicionar produto recebendo Produto - produto como parametro
    public void Add(Produto produto)
    {
        estoque.Add(produto);
    }

Outro opção seria deixar assim:

Produtos.cs

public class Produto
{
    public string Nome { get; set; }

    public Produto(string nome)
    {
        Nome = nome;
    }

    public override string ToString()
    {
        return Nome;
    }
}

Estoque.cs

public class Estoque
{
    public string Nome { get; set; }
    private List<Produto> produtos = new List<Produto>();

    public Estoque(string nome)
    {
        Nome = nome ?? throw new ArgumentNullException(nameof(nome), "O nome do estoque não pode ser nulo");
    }

    public void AdicionarProduto(Produto produto)
    {
        produtos.Add(produto);
        Console.WriteLine($"{produto.Nome} foi adicionado ao {Nome}");
    }

    public void ListarProdutos()
    {
        Console.WriteLine($"Produtos no {Nome}:");
        if (produtos.Count == 0)
        {
            Console.WriteLine("Nenhum produto no estoque.");
        }
        else
        {
            foreach (var produto in produtos)
            {
                Console.WriteLine($"- {produto.Nome}");
            }
        }
    }
}

Program.cs

try
        {
            // Instância da classe Produto
            Produto produto1 = new Produto("laranja");
            Produto produto2 = new Produto("uva");

            // Instância da classe Estoque
            Estoque estoquePereciveis = new Estoque("Estoque de Perecíveis");

            // Adicionando produtos no estoque de perecíveis
            estoquePereciveis.AdicionarProduto(produto1);
            estoquePereciveis.AdicionarProduto(produto2);

            // Listando produtos no estoque de perecíveis
            estoquePereciveis.ListarProdutos();
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Ocorreu um erro: {ex.Message}");
        }

Espero que ajude!

Abraços.