Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
14
respostas

meu código está dando erro no titular

using _05_byteBank;

namespace _05_byteBank
{
    public class ContaCorrente
    {
        public Cliente titular; // aqui aparece o ERRO. Não to entendendo pq.
        public int Agencia;
        public int Numero;
        public double saldo = 100;

        public bool Sacar(double valor)
        {
            if (this.saldo < valor)
            {
                return false;
            }
            else

            {
                this.saldo -= valor;
                return true;
            }
        }
    }

}
14 respostas

Oi Joana tudo certo ?

Qual erro está aparecendo no console ?

Você pode postar sua classe Program.cs e a Cliente.cs para gente dar uma olhada ?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _05_byteBank
{
    class Program
    {
        static void Main(string[] args)
        {
            Cliente gabriela = new Cliente();
            gabriela.nome = "Gabriela";
            gabriela.profissao = "Desenvolvedora C#";
            gabriela.cpf = "434.562.878-20";

            ContaCorrente conta = new ContaCorrente();

            conta.titular = gabriela;
            conta.saldo = 500;
            conta.Agencia = 563;
            conta.Numero = 5634527;

            Console.WriteLine(gabriela.nome);
            Console.WriteLine(conta.titular.nome);

            Console.ReadLine();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

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

O erro que aparece é "Acessibilidade inconsistente: tipo de campo "Cliente" é menos acessivel do que o campo "ContaCorrente.titular".

Alguém sabe me explicar porque está dando isso, tenho seguido as aulas e do professor não aconteceu isso.

Olá Joana!

Por padrão, quando não se inclui nenhuma visibilidade num campo ou numa classe, ela recebe internal. No caso o que o erro está dizendo é que sua classe Cliente tem um modificador de acesso mais restrito que seus campos. No início da classe coloque public que é para igualar a acessibilidade entre a classe e o campo:

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

Espero ter ajudado!

Obrigada pelo retorno, mas já está como public e mesmo assim o erro persiste. =/

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

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

public class ContaCorrente { public double saldo; public int agencia; public int numero; public Cliente titular;

public bool Sacar(double valor)
{
    if (this.saldo < valor)
    {
        return false;
    }
    else

    {
        this.saldo -= valor;
        return true;
    }
}

}

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

namespace TestancoClasse { class Program { static void Main(string[] args) { ContaCorrente contaDaCamila = new ContaCorrente(); contaDaCamila.titular = new Cliente(); contaDaCamila.titular.nome = "Camila";

        Console.WriteLine(contaDaCamila.titular.nome);

        Console.ReadLine();
    }
}

}

Não consigo nem colocar para rodar, ele da erro.

Olá Joana!

Observei que tanto o código do namespace TestancoConta, quanto do namespace _05_byteBank está omitindo o public antes da classe (Program e Cliente).

Vi que seus campos tem publicna frente, mas suas classes também tem?

seria isso :

namespace 06byteBank { public class ContaCorrente { public Cliente titular; public int Agencia; public int Numero; public double saldo = 100;

Acho que tem sim!

solução!

Joana, no arquivo em que você criou a classe Cliente. O código que me passou foi:

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

É nesse arquivo que está dando erro. Essa classe está com visibilidade internal, pois a visibilidade está omitida.

Tente fazer assim:

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

Ou seja, adicionar o publicantes de class Cliente, que é como já vem por padrão. A classe clienteestá com visibilidade mais restrita que os campos, que explicitamente estão declarados como public.

OBS: coloquei o namespace _05_byteBank apenas para ilustrar, alí você coloca o namespace adequado para sua aplicação.