Do que trata o artigo: Este artigo aborda conceitos teóricos e práticos essenciais para a boa compreensão do tipo Delegate, presente na plataforma desde o lançamento do .NET Framework 2.0. Frequentes dúvidas sobre sua existência, funcionamento e utilidade serão respondidas de modo a deixar o leitor ciente das soluções que utilizam esse tipo de dados e familiarizado com sua aplicabilidade. Ainda no artigo, o leitor encontrará as principais técnicas de manipulação de delegates nos modos single-cast, multi-cast e na orientação a eventos.


Para que serve:
O tipo Delegate agrega distintas funcionalidades na programação de um software. Pode-se dizer que todas essas características existentes tendem a flexibilizar o sistema, permitindo que os objetos e as classes que o compõe interajam entre si a fim de que haja maior reusabilidade.


Em que situação o tema é útil:
Frequentemente o leitor se deparará com cenários no qual um mesmo ator trabalha com diversos casos de uso. A flexibilização das operações desse ator irá melhorar o design do sistema e futura manutenção. Delegates são úteis em ambientes no qual a mudança já não é mais uma fase, mas um requisito.

Resumo do DevMan: A utilização de delegates é mais comum do que se possa imaginar. Saber como utilizá-los e como o .NET Framework trabalha com eles é essencial para compreender outras funcionalidades do framework, como eventos, funções callback – bastante comuns em plataforma de jogos, como o XNA –, manutenção de estado de objetos, LINQ e muito mais. Este artigo abordará delegates de modo a explicar ao leitor suas distintas funcionalidades, possibilitando, ao mesmo tempo, conhecer toda a sua abrangência no .NET Framework.

Introduzido na versão 2.0 do .NET Framework, o tipo Delegate não é mais do que uma classe especial da plataforma destinada a gerenciar uma ou mais funções associadas a um objeto delegate. Em outras palavras, delegates têm a função de coordenar o comportamento de um método.

Comumente, define-se delegate como um tipo de dado que representa a referência de um método. Embora esteja correta essa definição, nada ou pouco ajuda os desenvolvedores iniciantes na plataforma. Este artigo tem por objetivo explanar esse conceito e elucidar o leitor de suas principais utilizações no desenvolvimento cotidiano.

De fato, delegates é um dos assuntos mais temidos pelos desenvolvedores. É possível encontrar diversos artigos e capítulos de livros dedicados a este tema, mas grande parte já pressupõe que o leitor conheça o assunto. Quando se trata de estudar delegates, é necessário conhecer a fundo o problema que há por detrás de sua solução.

Um pouco de história

No estudo de delegates, não é raro ouvir dizer que delegates não passam de "ponteiros de funções, algo bastante antigo, já utilizado em C++". Pois bem, delegates são ponteiros de funções. E o que isto significa exatamente? Uma rápida explicação sobre ponteiros merece ser feita neste momento.

...
Quer ler esse conteúdo completo? Tenha acesso completo