Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Referente ao C# II, no capítulo Mão na Massa - ComboBox e atividade Vídeo 1

Olá,

Toda vez que rodo o código aponta o seguinte erro:

Error 1 Inconsistent accessibility: property type 'ComboBox.Cliente' is less accessible than property 'ComboBox.Conta.Titular'

Se eu setar o Contas[0].Titular = "Dalton"; (Sem o .Nome) da erro, e quando rodo aparece sempre no ComboContas escrito: ComboBox.Cliente.

class Cliente
    {
        public string Nome { get; set; }
        public string rg;
        public string Titular;
        public string cpf;
        public string endereco;
        public int idade;


        public Cliente (string nome)
        {
            this.Nome = nome;
        }

             public bool EhMaiorDeIdade()
        {
            return this.idade >= 18;
        }

    }

 public class Conta 
    {
        public int Numero { get; set; }
        public Cliente Titular { get; set; }

        public double Saldo { get; protected set; }  

        public virtual void Deposita(double valor)
        {
            if (valor > 0)
            {
                this.Saldo += valor;
            }
        }

        public virtual bool Saca (double valor)
        {
            if (valor > this.Saldo || valor < 0)
            {
                return false;
            }
            else
            {
                if (this.Titular.EhMaiorDeIdade())
                {
                    this.Saldo -= valor;
                    return true;
                }
                else
                {
                    if (valor <= 200)
                    {
                        this.Saldo -= valor;
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
        }

        public void Transfere(double valor, Conta destino)
        {
            this.Saca(valor);
            destino.Deposita(valor);
        }

        public double CalculaRendimentoAnual()
        {
            double saldoNaqueleMes = this.Saldo;

            for (int i = 0; i < 12; i++)
            {
                saldoNaqueleMes = saldoNaqueleMes * 1.007;
            }

            double rendimento = saldoNaqueleMes - this.Saldo;

            return rendimento;
        }
public partial class Form1 : Form
    {
        Conta[] contas;
        public Form1()
        {

            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            contas = new Conta[2];
            contas[0] = new Conta();
            contas[0].Numero = 1;
            contas[0].Titular.Nome = "Dalton";


            contas[1] = new Conta();
            contas[1].Numero = 2;
            contas[1].Titular.Nome = "sad";


            foreach (Conta ct in contas) {
                comboContas.Items.Add(ct.Titular);

            }
        }

             private void comboContas_SelectedIndexChanged(object sender, EventArgs e)
        {

            int indicSelecionado = comboContas.SelectedIndex;
            Conta contaSelcionada = contas [indicSelecionado];

            textoTitular.Text = contaSelcionada.Titular.Nome;
            textoNumero.Text = Convert.ToString(contaSelcionada.Numero);
            textoSaldo.Text = Convert.ToString(contaSelcionada.Saldo);
        }

}
2 respostas

O nome esta dentro da Classe cliente. Então provavelmente você terá que fazer assim:

Cliente c  = new Cliente("Dalton");
Cliente c2 = new Cliente("Sad");
solução!

No array, ficaria assim:

contas[0].Titular = new Cliente("Dalton");
contas[1].Titular = new Cliente("Sad");