abstract class Conta
{
public string Titular { get; set; }
public double Numero { get; set; }
public double Saldo { get; protected set; }
public string Rg { get; set; }
public void Deposito(double valor)
{
if (valor > 0)
{
this.Saldo += valor;
}
else
{
throw new Exception();
}
}
public void Sacar(double valor)
{
if (valor < 0)
{
throw new ArgumentException();
}
if (valor <= this.Saldo)
{
this.Saldo -= valor;
}
else
{
throw new SaldoInsuficienteException();
}
}
public void Transferencia(Conta contaDestino, double valorTransferencia)
{
if (valorTransferencia > 0)
{
this.Sacar(valorTransferencia);
contaDestino.Deposito(valorTransferencia);
}
else if (this.Saldo < valorTransferencia)
{
throw new SaldoInsuficienteException();
}
else
{
throw new ArgumentException();
}
}
public override bool Equals(Object obj)
{
Conta conta = (Conta)obj;
return this.Titular.Equals(conta.Rg);
}
public override string ToString()
{
return "Cliente: " + Titular + " Rg: " + Rg;
}
}
public partial class CadastrosDeContas : Form
{
public CadastrosDeContas()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string titular = titularConta.Text;
string rg = rgConta.Text;
int numero = Convert.ToInt32(numeroConta.Text);
//"Conta" é um namespace,mas é usado como um tipo
Conta conta = new Conta();
}
}