//Exemplo clássico generico private static T CriarContas <T>() where T : Conta { Console.Clear(); Console.Write("Informe o número da Conta: "); int numero = Convert.ToInt32(Console.ReadLine()); if (GerenciadorDeContasBanco.ContaValidaParaCriacao(numero)) { var titular = CriarCliente <Cliente>(); Console.Write("Informe o saldo da conta: "); double saldo = Convert.ToDouble(Console.ReadLine()); // Cria um instancia generica, conforme o tipo! T conta = (T)Activator.CreateInstance(typeof(T), new object[] { numero, titular, saldo }); GerenciadorDeContasBanco.AdicionarConta(conta); GerenciadorDeContasBanco.GravarConta(conta); return(conta); } throw new ContaExistenteException(); }
private void CriarContas <T>(int numero, Cliente titular, double saldo) where T : Conta { T conta = (T)Activator.CreateInstance(typeof(T), new object[] { numero, titular, saldo }); GerenciadorDeContasBanco.AdicionarConta(conta); GerenciadorDeContasBanco.GravarConta(conta); }