3
respostas

Cannot convert implicitly convert type "string" to CaixaEletr.Client

Bom dia, alguém poderia me ajudar nisso?


        private void Form1_Load(object sender, EventArgs e)
        {
            this.conta = new Conta();
            this.conta.Titular = "Victor";   //aqui diz que está errado
            this.conta.Numero = 1;
            this.conta.Deposita(250.0);

            textoNumero.Text = Convert.ToString(this.conta.Numero);
            textoSaldo.Text = Convert.ToString(this.conta.Saldo);
            textoTitular.Text = Convert.ToString(this.conta.Titular);

            /*
            Conta c = new Conta() { Numero = 1,  _Saldo = 250 };
            Cliente c1 = new Cliente() { nome = "Victor" };

            c.Titular = c1;
            textoTitular.Text = Convert.ToString(c.Titular);
            textoSaldo.Text = Convert.ToString(c.Saldo);
            textoNumero.Text =Convert.ToString(c.Numero);
            textoTitular.Text = Convert.ToString(c.Titular.nome);

           */                      
        }

obrigada

```

3 respostas

Oi Taina, tudo bom?

Acredito que essa duvida aqui:

https://cursos.alura.com.br/forum/topico-isso-esta-correto-33915

seja igual a sua.

O problema é que agora seu titular não é mais uma string e sim um Client. O jeito é criar um cliente novo e dar um nome pra ele, pra depois definir seu titular como o novo client.

No post eu dou um exemplo disso =)

Qualquer dificuldade, compartilha com a gente!

Abraço e bons estudos.

oi andré,

fico u assim agora:

namespace CaixaEletron
{
    public partial class Form1 : Form
    {
        private Conta conta;
        private Cliente cliente;


        public Form1()
        {
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            this.conta = new Conta();
            this.cliente = new Cliente() { nome = "Victor" };
            this.conta.Titular = "Victor";
            this.conta.Numero = 1;
            this.conta.Deposita(250.0);

            textoNumero.Text = Convert.ToString(this.conta.Numero);
            textoSaldo.Text = Convert.ToString(this.conta.Saldo);
            textoTitular.Text = Convert.ToString(this.conta.Titular);

            /*
            Conta c = new Conta() { Numero = 1,  _Saldo = 250 };
            Cliente c1 = new Cliente() { nome = "Victor" };

            c.Titular = c1;
            textoTitular.Text = Convert.ToString(c.Titular);
            textoSaldo.Text = Convert.ToString(c.Saldo);
            textoNumero.Text =Convert.ToString(c.Numero);
            textoTitular.Text = Convert.ToString(c.Titular.nome);

           */                      
        }

e não aparece a mesma mensagem.

Oi Taina, verifica se sua classe conta está trabalhando com cliente:

class Conta
    {
        public int Numero { get; set; }
        public Cliente Titular { get; set; } // titular do tipo cliente
        public double Saldo { get; private set; }
// resto da classe

Se sim, tenta primeiro criar um cliente, depois uma conta e relacionar os dois:

  private void Form1_Load(object sender, EventArgs e)
        {
            Cliente c1 = new Cliente(); // cria um cliente
            this.conta = new Conta(); // cria uma conta
            this.conta.Titular = c1; // adiciona um novo cliente ao titular dessa conta

            this.conta.Titular.Nome = "Victor"; // estamos dizendo que o nome do nosso cliente é Victor =)
            this.conta.Numero = 1;
            this.conta.Deposita(250.0);

            this.MostraConta(); // pedimos pra mostrar nossa conta
        }

Esses códigos e o resto do projeto pronto até esse capitulo, você pode encontrar no link a seguir para consulta:

https://github.com/alura-cursos/csharp/raw/master/Capitulo3-C%232.zip

As vezes é legal pra ter uma referencia =)

Qualquer dificuldade, compartilha com a gente!

Abraço!

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