Compartilhar via


Representantes (guia de programação C#)

A delegado é um tipo que define um método de assinatura e podem ser associados a qualquer método com uma assinatura compatível.Você pode chamar (ou telefonar) o método através do delegado.Delegados são usados para passar métodos sistema autônomo argumentos para outros métodos.Manipuladores de eventos são nada mais do que os métodos que são chamados por meio de representantes.Você cria um método personalizado e uma classe sistema autônomo um controle do windows pode chamar seu método quando ocorre um evento de determinados.O exemplo a seguir mostra uma declaração delegado:

public delegate int PerformCalculation(int x, int y);

Qualquer método de qualquer classe acessível ou struct que corresponde a assinatura do delegado, que consiste em tipo de retorno e parâmetros, pode ser atribuído ao delegado.O método pode ser estático ou um método de instância.Isso torna possível alterar programaticamente as chamadas de método e também Conecte novo código de classes existentes.sistema autônomo longo sistema autônomo você conhece a assinatura do delegado, você pode sistema autônomo sinal seu próprio método.

Observação:

No contexto de sobrecarga de método, o assinatura de um método não inclui o valor retornado.Mas no contexto de delegados, a assinatura inclui o valor retornado.Em outras palavras, um método deve ter o mesmo valor retornado sistema autônomo o delegado.

Essa capacidade para se referir a um método como um parâmetro torna o delegate ideal para definir métodos de callback.Por exemplo, um algoritmo de classificação pode passar uma referência para o método que compara dois objetos.Separar o código de comparação permite que o algoritmo a ser gravado de maneira mais geral.

Visão geral Delegates

Delegates possuem as seguintes propriedades:

  • Delegados como ponteiros de função C++ mas são tipo seguro.

  • Delegates permitem métodos para serem passados como parâmetros.

  • Delegates podem ser usados para definir métodos callback.

  • Delegates podem ser encadeados; por exemplo, vários métodos podem ser chamados em um único evento.

  • Métodos não são necessário que corresponder exatamente à assinatura do delegado.Para obter mais informações, consulte Covariance and ContravarianceCovariância e Contravariance em representantes (guia de programação C#).

  • Translation from VPE for Csharp versão 2.0 introduziu o conceito de Métodos anônimo, que permite que blocos de código a serem passados sistema autônomo parâmetros no lugar de um método definido separadamente.Translation from VPE for Csharp 3.0 introduziu lambda expressões sistema autônomo uma forma mais concisa de gravação de blocos de código embutido.Métodos anônimo e expressões lambda (em determinados contextos) são compiladas para delegado tipos.Juntos, esses recursos agora são conhecidos sistema autônomo funções anônimas.Para obter mais informações sobre expressões lambda, consulte Funções anônimo (guia de programação translation from VPE for Csharp).

Nesta seção

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • Delegates 1,11

  • 4.2.6 Delegar tipos

  • 7.5.5.3 delegado invocações

  • Delegates 15

Consulte também

Conceitos

Guia de Programação C#

Referência

Eventos (Guia de programação do C#)

Delegate