1
resposta

Curso C# II: Orientação a objetos - Aula 07 (Mão na Massa)

Bom dia, Sou iniciante na linguagem e estou fazendo o curso de C# II e não consigo prosseguir com os estudos porque meu código não compila e eu não consigo entender onde está o erro. Alguém poderia me ajudar?

O erro é Error CS0029 Cannot implicitly convert type 'string' to 'WindowsFormsApp2.Form1.Cliente' nas linhas 92, 97 e 111.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {

        public class Cliente
        {
            public string Nome { get; set; }
            public Cliente (string nome)
            {
                this.Nome = nome;
            }
            public string CPF { get; set; }
        }
        public class Conta
        {
            public int Numero { get; set; }
            public double Saldo { get; protected set; }
            public Cliente Titular { get; set; }

            public virtual void Saca(double valor)
            {
                this.Saldo -= valor;
            }
            public virtual void Deposito(double valor)
            {
                this.Saldo += valor;
            }
        }
        public class ContaPoupanca : Conta
        {
            public override void Saca(double valor)
            {
                this.Saldo -= valor + 0.1;
            }
            public override void Deposito(double valor)
            {
                this.Saldo += valor + 0.1;
            }
        }
        public class ContaCorrente : Conta
        {

        }

        public class TotalizadorDeContas
        {

            public double SaldoTotal { get; private set; }
            public void Adiciona(Conta conta)
            {
                this.SaldoTotal += conta.Saldo;
            }

        }

        public class Banco
        {
            private Conta[] contas = new Conta[10];
            private int qtd;

            public void Adiciona(Conta conta)
            {
                this.contas[this.qtd] = conta;
                this.qtd++;
            }
        }

        Conta[] contas;


        public Form1()
        {
            InitializeComponent();
        }

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

            Conta conta = new Conta();
            conta.Titular = "Carlos";
            conta.Numero = 1;
            this.contas[0] = conta;

            Conta conta2 = new Conta();
            conta2.Titular = "Mario";
            conta2.Numero = 2;
            this.contas[1] = conta2;

            int indice = comboContas.SelectedIndex;
            Conta contaSelect = contas[indice];

            this.contas = new Conta[2];



            comboContas.Items.Add(contas[0].Titular);
            comboContas.Items.Add(contas[1].Titular);

            textoNome.Text = contaSelect.Titular;
            textoNum.Text = Convert.ToString(contaSelect.Numero);
            textoValor.Text = Convert.ToString(contaSelect.Saldo);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Conta conta = new Conta();

            conta.Deposito(500);
            textoValor.Text = Convert.ToString(conta.Saldo);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Conta conta = new Conta();

            conta.Saca(250);
            textoValor.Text = Convert.ToString(conta.Saldo);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Conta conta = new Conta();
            Conta conta2 = new ContaCorrente();
            Conta conta3 = new ContaPoupanca();


        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}
1 resposta

Na linha 92 altere

conta.Titular = "Carlos";

Para

conta.Titular.Nome = "Carlos";

Faça a mesma alteração nas linhas 97 e 111.

Você não pode imprimir o "TITULAR" mas pode imprimir o atributo "Nome".