Capítulo 9. Delegados, Lambdas e Eventos
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
A forma mais comum de utilizar uma API é invocar os métodos e propriedades que as suas classes fornecem, mas por vezes as coisas têm de funcionar ao contrário - a API pode ter de chamar o teu código, uma operação frequentemente descrita como uma chamada de retorno. No Capítulo 5, mostrei os recursos de pesquisa oferecidos por matrizes e listas. Para usá-los, escrevi um método que retornava true quando seu argumento atendia aos meus critérios, e as APIs relevantes chamavam meu método para cada item que inspecionavam. Nem todas as chamadas de retorno são tão imediatas. As APIs assíncronas podem chamar um método no nosso código quando o trabalho de longa duração estiver concluído. Numa aplicação do lado do cliente, quero que o meu código seja executado quando o utilizador interage com determinados elementos visuais de formas específicas, como clicar num botão.
Interfaces e métodos virtuais podem permitir callbacks. No Capítulo 4, mostrei a interface IComparer<T>, que define um único método CompareTo. Este é chamado por métodos como Array.Sort quando queremos uma ordem de classificação personalizada. Podes imaginar uma estrutura de IU que define uma interface IClickHandler com um método Click, e talvez também DoubleClick. A estrutura poderia exigir que implementássemos essa interface se quiséssemos ser notificados de cliques ...