O delegate é um dos recursos pertencentes ao Visual Basic .NET, um delegate é um tipo que faz referência a um método e permite a você controlar o código que atualmente manipula um evento. (Como um evento Change, Click, Load, etc.).
Um delegate é então uma classe que pode manipular uma referência, um método. Ao fazer isto, estamos 'delegando' o evento. Uma classe delegada possui uma assinatura e somente será capaz de armazenar referências para procedimentos que têm a mesma assinatura (tipos de parâmetros, tipos de retorno). Isto reforça a segurança e evita que você faça uma referência a uma rotina inválida.
Um delegate é então uma classe que pode manipular uma referência, um método. Ao fazer isto, estamos 'delegando' o evento. Uma classe delegada possui uma assinatura e somente será capaz de armazenar referências para procedimentos que têm a mesma assinatura (tipos de parâmetros, tipos de retorno). Isto reforça a segurança e evita que você faça uma referência a uma rotina inválida.
Uma vez que um delegate é atribuído a um método, ele se comporta exatamente como esse método. O método delegate pode ser usado como qualquer outro método, com parâmetros e um valor de retorno, como neste exemplo:
public delegate int PerformCalculation(int x, int y);
Esta capacidade para se referir a um método como um parâmetro torna o delegate ideal para a definição de métodos de retorno.
Propriedades do delegates:
- São semelhantes a função ponteiros no C ++ , mas seguros;
- Permite que os métodos sejam passados como parâmetros;
- Podem ser usados para definir métodos de retorno;
- Podem ser encadeados, por exemplo, vários métodos podem ser chamados em um único evento;
- Não precisa coincidir exatamente com a assinatura do método;
- A versão C # 2.0 introduz o conceito de métodos anônimos, que permitem que blocos de código sejam passados como parâmetros no lugar de um método definido separadamente.
Anonymous Delegate method
Fontes:
http://msdn.microsoft.com/en-us/library
http://www.c-sharpcorner.com/UploadFile/puranindia/C-Sharp-net-delegates-and-events/
Um comentário:
Você apresentou um 'delegate' anônimo e as outras duas formas ???
Postar um comentário