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

Meu titular está dando erro

Este é o seguinte erro que está retornando.

‘ContaCorrente’ não contém uma definição para "nome" e não foi possível encontrar nenhum método de extensão "nome" que aceite um primeiro argumento do tipo ‘ContaCorrente’ (você está se esquecendo de usar uma diretiva ou uma referência de assembly?)'

namespace Bytebank5
{
    public class ContaCorrente
    {

        public Cliente titular;
        public int numeroAgencia;
        public int numero;
        public double saldo = 100; 

        public bool Sacar(double valor)
        {
            if (this.saldo >= valor)
            {
                this.saldo -= valor;
                return true;
            }
            else
            {
                return false;
            }
        }

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

        public bool Transferir(double valor, ContaCorrente contaDestino)
        {
            if (this.saldo < valor)
            {
                return false;
            }

            this.saldo -= valor;
            contaDestino.Depositar(valor);
            return true;
        }
    }

}

using System;

namespace Bytebank5
{   
    class Program
    {
        static void Main(string[] args)
        {

            Cliente gabriela = new Cliente();
            gabriela.nome = "Gabriela";
            gabriela.profissao = "Desenvolvedora C#";
            gabriela.cpf = "458.586.875-84";

            ContaCorrente contaDaGabriela = new ContaCorrente();

            contaDaGabriela.titular = gabriela;
            contaDaGabriela.saldo = 500;
            contaDaGabriela.numero = 526;
            contaDaGabriela.numeroAgencia = 584;
            contaDaGabriela.numero = 2543644;


            Console.WriteLine(contaDaGabriela.titular.nome);
            Console.WriteLine(contaDaGabriela.nome);

        }
    }
}

using System;
using System.Collections.Generic;
using System.Text;

namespace Bytebank5
{
    public class Cliente
    {
        public string nome;
        public string cpf;
        public string profissao;
    }
}

1 resposta
solução!

Olá Bia, tudo bem?

A criação do objeto contaDaGabrielaparte da classe ContaCorrente. Perceba que na classe ContaCorrente, não existe o campo nome.

O código com erro é este:

Console.WriteLine(contaDaGabriela.nome);

Podemos ajustar de duas maneira. A primeira opção seria utilizar o objeto gabriela, que vem da classe Cliente, esta sim possui o campo nome. O código ficaria assim:

Console.WriteLine(gabriela.nome);

A segunda opção que citei acima, seria a repetição do Console.WriteLineque você já utilizou:

Console.WriteLine(contaDaGabriela.titular.nome);

Beleza, mas por qual motivo o campo nomefunciona nesse código? Isso acontece porque o campo titularé do tipo Clienteque é uma classe do nosso projeto. Assim, conseguimos utilizar o titularpara exibir todos os campos da classe Cliente:

public class Cliente
    {
        public string nome;
        public string cpf;
        public string profissao;
    }
 static void Main(string[] args)
        {

            Cliente gabriela = new Cliente();
            gabriela.nome = "Gabriela";           

            ContaCorrente contaDaGabriela = new ContaCorrente();

            contaDaGabriela.titular = gabriela;
            contaDaGabriela.titular.cpf = "123456789-65";
            contaDaGabriela.titular.profissao = "Desenvolvedora";           

            Console.WriteLine(contaDaGabriela.titular.nome);
            Console.WriteLine(contaDaGabriela.titular.cpf);
            Console.WriteLine(contaDaGabriela.titular.profissao);

        }

Se estiver com alguma dúvida, fique tranquila para perguntar novamente. Vou estar por aqui.

Abraços e bons estudos!

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