em princípio:
1. A essência de uma delegação é um ponteiro, um ponteiro de função. Basta obter o primeiro endereço da função;
A delegação do C# adiciona segurança, que se reflete na detecção do tipo do bloco de instruções de função referenciado pelo ponteiro de função, como valor de retorno, tipo de parâmetro e número de parâmetros.
Quando um ponteiro de função em C recebe um valor (em C#, é quando o delegado é instanciado, porque o backend C# trata o delegado como uma classe e o encapsula) se o valor atribuído satisfaz as várias condições do tipo (valor de retorno , tipo de parâmetro, número de parâmetros) não são verificados e a garantia é dada pelo usuário, e o C# irá compilá-la e avisá-la.
2. O processo de instanciação do delegado, ou seja, o processo de construção do objeto delegado, consiste em atribuir o endereço de memória de um bloco de instruções de código de função existente (função estática, função de membro não estática da instância) ao delegado; processo de atribuição é o que o construtor delegado faz. Portanto, o construtor delegado deve ter um parâmetro. Este parâmetro é processado pelo sistema em segundo plano, que é o ponteiro de função que satisfaz a verificação de tipo e o tipo a ser verificado (valor de retorno). , tipo de parâmetro, número de parâmetros) são todos fornecidos ao declarar e definir o delegado.
3. Dois métodos de instanciação de delegado:
1) A a = novo A (nome do método estático/instância. nome do método);
2) A a = nome do método estático/nome da instância.metodo;
Dois métodos chamados pelos delegados:
1) a.Invoke()
2)uma()
O método usado para construir um delegado pode ser um método estático ou uma função membro de um objeto instanciado. A essência é que esta instrução de código foi compilada, a memória foi alocada e os parâmetros foram passados para o delegado (essencialmente, o cabeçalho do delegado). estes dados de instrução) Endereço) são válidos e significativos. Dessa perspectiva, métodos estáticos naturais e métodos de instância podem ser usados para construir e criar instâncias de delegação.