Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida - C# II: Orientação a objetos C# II: Orientação a objetos - Combo Box

Boa tarde,

Em tenho um combobox onde gostaria de mostrar os dados das minhas contas. Eu gostaria de passar o objeto para o combobox, como eu faço isso? Exemplo do código que estou tentando fazer.

private void Form1_Load(object sender, EventArgs e)
        {
            Conta [] contas = new Conta[2];            
            contas[0] = new Conta("João", 10.0);
            contas[1] = new Conta("André", 0.0);

            foreach(Conta conta in contas)
            {
                comboBox1.Items.Add(conta);
            }

        }

class Conta
    {
        public String Titular { get; private set; }
        public int numero {get; private set;}

        public double saldo { get; private set; }

        public virtual String toString()
        {
            return Titular;
        }

        public Conta(String Titular,double saldo)
        {
            this.Titular = Titular;
            this.saldo = saldo;
        }

        public void Depositar (double valor)
        {
            this.saldo = valor;
        }

    }
2 respostas
solução!

Oi Vinicius, tudo bem?

O valor exibido para cada Conta no ComboBox é o valor retornado no método ToString() da sua classe Conta.

Você precisa avisar pro C# que está sobrescrevendo o método ToString() através da palavra-chave override.

No exemplo a seguir eu troquei a palavra virtual por override. Isso deve fazer com que o nome dos titulares das contas aparecem no ComboBox:

class Conta
{
    // ...

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

Para exibir o titular e o saldo, você pode fazer algo como:

class Conta
{
    // ...

    public override string ToString()
    {
        return "Titular: " + Titular + ", Saldo: " + Saldo;
    }
}

Ao rodar você deverá ver o nome do titular e o saldo de cada conta.

Faz sentido? Abraço!

Obrigado !!! Exatamente isso que eu queria !!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software