ola, nao entendi muito bem a diferença das duas interfaces , quando devo usar uma ou outra , qual é a diferença entre elas?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
ola, nao entendi muito bem a diferença das duas interfaces , quando devo usar uma ou outra , qual é a diferença entre elas?
Olá Luan, tudo certo?
Aparentemente é muito parecido, mas de modo simples, o objeto a ser classificado implementará IComparable, enquanto a classe que irá ordenar os objetos implementará o IComparer.
Na documentação, fica mais fácil de entender ao ver os métodos das interfaces:
IComparable.CompareTo(Object): Compara a instância atual com outro objeto do mesmo tipo e retorna um inteiro que indica se a instância atual precede, segue ou ocorre na mesma posição da ordem de classificação do outro objeto.
IComparer.Compare(Object, Object): Compara dois objetos e retorna um valor que indica se um é menor, igual ou maior do que o outro.
Espero ter ajudado! Bons estudos!