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

Erro no comboBox ||C# II : aula 7

"o textTitular.Text = contaSeleciona.Titular; " está dando erroquando executo o programa em vez de aparecer o nome está aparecendo "CaixaEletronico.Cliente" no comboBox.

Aparece a seguinte mensagem de erro:

CS0029 : Cannot implicitly convert type 'CaixaEletronico8.Cliente' to 'string'

Já tentei converter pra string, desaparece o erro mencionado mais continua aparecendo "CaixaEletronico.Cliente." no comboBox;

Acho que é por eu utilizar o "public Cliente Titular { get; set; } "na classe conta queria saber se alguém sabe como arrumar '-'.

Também queria saber se daria pra exibir os outro itens de classe "Cliente" normalmente.

Conta[] contas;
        Cliente[] clientes;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            contas = new Conta[2];
            clientes = new Cliente[2];

            contas[0] = new Conta();
            clientes[0] = new Cliente("Alexander");
            contas[0].Titular = clientes[0];
            contas[0].Numero = 1;
            contas[0].Titular.idade = 18;

            contas[1] = new Conta();
            clientes[1] = new Cliente("Bassani");
            contas[1].Titular = clientes[1];
            contas[1].Numero = 2;
            contas[1].Titular.idade = 18;

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

        }

        private void comboContas_SelectedIndexChanged(object sender, EventArgs e)
        {
            int indiceSelecionado = comboContas.SelectedIndex;
            Conta contaSeleciona = contas[indiceSelecionado];

            textTitular.Text = contaSeleciona.Titular;
            textNúmero.Text = Convert.ToString(contaSeleciona.Numero);
            textSaldo.Text = Convert.ToString(contaSeleciona.Saldo);
        }
class Cliente
    {
        public string Nome { get; set; }
        public string CPF { get; set; }
        public string Endereco { get; set; }
        public Cliente(string nome)
        {
            this.Nome = nome;
        }
        public int idade { get; set; }
        public bool Maior18
        {
            get
            {
                return this.idade >= 18;
            }
        }
    }
public Cliente Titular { get; set; }
        public int Numero { get; set; }
        public double Saldo { get; protected set; }

        public virtual bool Saca(double valor)
        {
            if (this.Saldo >= valor && valor > 0)
            {
                if (Titular.Maior18)
                {
                    this.Saldo -= valor;
                    return true;
                }
                else
                {
                    if (valor <= 200)
                    {
                        this.Saldo -= valor;
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
            else
            {
                return false;
            }
        }

        public void Deposita(double valor)
        {
            if (valor > 0)
            {
                this.Saldo += valor;
            }
        }

        public void transfere(double valor, Conta destinatario)
        {
            this.Saca(valor);
            destinatario.Deposita(valor);

        }

        public virtual void AtualizaSaldo(double taxa)
        {
            this.Saldo -= Saldo * taxa;
        }

        public double RendimentoAnual()
        {
            double SaldoDoMes = this.Saldo;
            for(int i = 1; i <= 12; i++)
            {
                SaldoDoMes *= 1.007;
            }
            double Rendimento =SaldoDoMes - this.Saldo;
            return Rendimento;
        }
    }
1 resposta
solução!

Olá.

Dá erro porque você está passando para um campo string um objeto do tipo Cliente. Titular é um objeto da classe Cliente. O que você precisa é passar a propriedade Nome dentro do objeto do tipo Cliente. No exemplo que você passou, você cria um objeto Titular da classe Cliente dentro da própria classe Cliente? Não é necessário. Titular é o nome. Você tem as duas propriedades, tanto Nome quanto Titular. Deixe só uma como string e a passe na combobox seguindo esse padrão:

textTitular.Text = contaSeleciona.Cliente.Titular; // Titular ou Nome, dependendo da propriedade que você deixar

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