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);
}
}