Solucionado (ver solução)
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.