Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Método CompareTo

Olá! Não entendi muito bem como o método CompareTo funciona... Aqui o código no Program:

           var contas = new List<ContaCorrente>()
            {
                new ContaCorrente(341, 57480),
                new ContaCorrente(342, 45678),
                new ContaCorrente(340, 48950),
                new ContaCorrente(350, 99999),
                new ContaCorrente(290, 18950)
            };

            contas.Sort();

            foreach (var conta in contas)
            {
                Console.WriteLine($"Numero Conta:{conta.Numero} Agência: {conta.Agencia}");
            }

E a implementação do CompareTo na classe ContaCorrente:

public int CompareTo(object obj)
        {

            var outraConta = obj as ContaCorrente;

            if(outraConta == null)
            {
                return -1;
            }

            if(Numero < outraConta.Numero)
            {
                return -1;
            }

            if(Numero == outraConta.Numero)
            {
                return 0;
            }

            return 1;


        }

Eu não entendi muito bem quem é a instância e quem a outraConta nesse método ToCompare. Porque quando a gente chama o o contas.Sort(), a gente não passa nenhum argumento, então o que é que cai naquele object obj? Preciso de uma luz kkk

2 respostas
solução!

Boa noite, Icaro! Como vai?

Cheguei para te levar para a luz do conhecimento, meu aluno!

Veja que no seu código em momento nenhum vc invoca o método CompareTo()! Quem faz isso pra vc é o método Sort() por baixo dos panos. Nesse momento, o que o Sort() precisa fazer para ordenar a lista é comparar dois a dois os objetos. Sendo assim, ele pega um dos objetos, invoca o CompareTo() e passa outro objeto qualquer da lista para esse método para que ambos sejam comparados.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Muito obrigado pela luz, professor! haha Agora deu para entender! \o/