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

Erro ao atribuir valor

    public partial class Form1 : Form
    {
        private Conta conta;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.conta = new Conta();



            //eu quero atribuir o valor aqui, mas dá erro

            this.conta.Titular = "Thalyson";


            //o erro diz que eu não posso converter um tipo string para um tipo CaixaEletronico.Cliente


            this.conta.Numero = 1;

            this.conta.Deposita(250.0);

            MostraConta();

        }

        private void btnDeposito_Click(object sender, EventArgs e)
        {
            this.conta = new Conta();
            double valor = Convert.ToDouble(textoValor.Text);
            this.conta.Deposita(valor);

            MostraConta();


        }

        private void MostraConta()
        {
            textoSaldo.Text = this.conta.Saldo.ToString();
            textoTitular.Text = this.conta.Titular;
            textoNumero.Text = this.conta.Numero.ToString();

        }
    }
//aqui está a classe Conta
    class Conta
    {
        public int Numero { get; set; }

        //essa é a propriedade em questão
        public Cliente Titular { get; set; }

        public double Saldo { get; private set; }

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

        public bool Saca(double valorASerSacado)
        {
            if (valorASerSacado > this.Saldo || valorASerSacado < 0)
            {
                return false;
            }
            else
            {
                if (this.Titular.EhMaiorDeIdade())
                {
                    this.Saldo -= valorASerSacado;
                    return true;
                }
                else
                {
                    if (valorASerSacado <= 200)
                    {
                        this.Saldo -= valorASerSacado;
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
        }

        public void Transfere(double valor, Conta destino)
        {
            this.Saca(valor);
            destino.Deposita(valor);
        }

        public double CalculaRendimentoAnual()
        {
            double saldoNaqueleMes = this.Saldo;

            for (int i = 0; i < 12; i++)
            {
                saldoNaqueleMes = saldoNaqueleMes * 1.007;
            }

            double rendimento = saldoNaqueleMes - this.Saldo;

            return rendimento;
        }
    }

//e aqui está a classe Cliente class Cliente { public string Nome { get; set; } public string rg; public string cpf; public string endereco; public int idade;

public Cliente(string nome) { this.Nome = nome; }

public Cliente() { }

public bool EhMaiorDeIdade() { return this.idade >= 18; } } ```

3 respostas
solução!

Oi! Nesse caso você precisa ter um objeto Cliente instanciado e setar a propriedade Nome dele! Dessa forma:

this.conta.Cliente = new Cliente();
this.conta.Cliente.Nome = "Thalyson";

ou um pouco mais elegante:

this.conta.Cliente = new Cliente{ Nome = "Thalyson" };

Oi! Assim dá certo, a questão é que a propriedade Titular na classe conta é do tipo Cliente, daí na vídeo aula o professor passa valor para ela de forma direta, sem instanciar um Cliente, porém no meu não funciona.

Consegui do jeito que você falou, obrigado!