Um delegado é uma classe que define o tipo de método para que ele possa ser passado como argumento para outro método. Um evento é uma comissão especial.
1. Declaração de encredimento
(1). delegar
Delegado
Delegate possui pelo menos 0 parâmetros e no máximo 32 parâmetros, podendo não ter valor de retorno ou especificar um tipo de valor de retorno.
Por exemplo, delegado público int MethodtDelegate(int x, int y); Indica que existem dois parâmetros e retorna um tipo int.
(2). Ação
Ação é um delegado genérico sem valor de retorno.
Ação representa um delegado sem parâmetros e sem valor de retorno
Action<int,string> indica um delegado com um parâmetro de entrada int e sem valor de retorno para string
Action<int, string, bool> indica um delegado com parâmetros de entrada int, string, bool sem valores de retorno
Action<int, int, int, int> significa que há 4 parâmetros do tipo int passados e não há valor de retorno
A ação tem pelo menos 0 parâmetros e um máximo de 16 parâmetros, sem valor de retorno.
Exemplo:
(3). Func
Func é um delegado genérico com valor de retorno
Func<int> significa um delegado sem parâmetros e retorna um valor int
Func<object,string,int> representa um delegado com o parâmetro de entrada como objeto e a string retorna um valor int
Func<object,string,int> representa um delegado com o parâmetro de entrada como objeto e a string retorna um valor int
Func<T1,T2,,T3,int> representa um delegado com o parâmetro de entrada T1, T2, ,T3 (genérico) retornando um valor int
Func possui pelo menos 0 parâmetros e um máximo de 16 parâmetros, que são retornados de acordo com o valor de retorno genérico. Deve haver um valor de retorno, não nulo
Exemplo:
(4) .predicado
Predicado é um delegado genérico que retorna um tipo bool
<int> Predicado representa um delegado com o parâmetro de entrada int retornando bool
O predicado tem e apenas um parâmetro, e o valor de retorno é fixo a bool
Exemplo:
|