1
resposta

Método genérico

Avançando um pouco mais, tenho a seguinte dúvida...

class Conta { public string Descricao {get; protected set} }

class ContaPoupanca : Conta { public int MesAniversario {get; protected set}}

Como eu poderia desenvolver um método genérico, tipo Imprimir(Conta c), e acessar as propriedades da classe filha sem Cast? Pois, se eu "passo" ContaPoupanca vai numa boa, mas para acessar a propriedade "MesAniversario" eu teria que fazer um Cast para ContaPoupanca.

Qual seria a melhor implementação para este caso?

1 resposta

Uma possível solução:

using System;

public class Test
{
    public static void Main()
    {
        Conta c = new Conta();
        ContaPoupanca cp = new ContaPoupanca();
        cp.Descricao = "Conta Poupanca";
        cp.MesAniversario = 10;
        cp.imprime();

    }
}

class Conta { 
    public string Descricao {get;  set;} 
    public virtual void imprime() {
        Console.WriteLine(this.Descricao);
    }
}

class ContaPoupanca : Conta { 
    public int MesAniversario {get;  set;}
    public override void imprime() {
         base.imprime();
         Console.WriteLine(this.MesAniversario);
    }
}