2
respostas

Ex. 2 da Aula 7 - Mão na Massa - Combo Box - Outra Opção para o Código

Olá a todos. Neste exercício para gerar o formulário de controle de contas, deposito e saque, o professor gera um método "BuscaContaSelecionada", que basicamente pega o index do combobox e retorna a conta selecionada.

Eu acabei executando o código diferente. Ao invés de gerar um método. Gerei um atributo chamado 'contaSelecionada' que era preenchida logo no select do combobox.

Minha dúvida é, o meu código está com uma lógica boa de programação? O jeito que fiz é um jeito aceitável? ou criar o método é a melhor escolha?

  public partial class Form1 : Form
    {
        Conta[] contas;
        Conta contaSelecionada;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            contas = new Conta[2];

            Cliente titularVictor = new Cliente();
            Conta contaVictor = new Conta();
            contaVictor.Numero = 1;
            contaVictor.Titular = titularVictor;
            contaVictor.Titular.nome = "Victor";
            contaVictor.Deposita(250.0);
            contas[0] = contaVictor;

            Cliente titularMario = new Cliente();
            Conta contaMario = new Conta();
            contaMario.Numero = 2;
            contaMario.Titular = titularMario;
            contaMario.Titular.nome = "Mario";
            contaMario.Deposita(2750.0);
            contas[1] = contaMario;

            foreach (Conta conta in contas)
            {
                this.comboDeContas.Items.Add(conta.Titular.nome);
            }
        }

        private void comboDeContas_SelectedIndexChanged(object sender, EventArgs e)
        {
            int indiceSelecionado = this.comboDeContas.SelectedIndex;
            contaSelecionada = contas[indiceSelecionado];

            this.MostraConta(contaSelecionada);
        }

        private void botaoDeposita_Click(object sender, EventArgs e)
        {
            contaSelecionada.Deposita(Convert.ToDouble(this.textoValor.Text));
            this.MostraConta(contaSelecionada);
        }

        private void botaoSacar_Click(object sender, EventArgs e)
        {
            contaSelecionada.Saca(Convert.ToDouble(this.textoValor.Text));
            this.MostraConta(contaSelecionada);
        }

        private void MostraConta(Conta conta)
        {
            this.textoTitular.Text = conta.Titular.nome;
            this.textoNumero.Text = Convert.ToString(conta.Numero);
            this.textoSaldo.Text = Convert.ToString(conta.Saldo);
        }

    }
2 respostas

Com isso você fica preso ao uso de um combobox, o "BuscaContaSelecionada" seria melhor por ser uma função especializada em buscar a conta, seja em qual elemento for: combobox, grid etc.

Quebrar em vários métodos te habilita a fazer manutenções futuras muito mais facilmente, como por exemplo, se tivesse que criar outro combobox para listar contas também para fazer uma transferência por exemplo.