Un delegado es una clase que define el tipo de método para que pueda ser pasado como argumento a otro método. Un evento es una comisión especial.
1. Declaración de encomiendo
(1). delegar
Delegado
Delegate tiene al menos 0 parámetros y un máximo de 32 parámetros, y no puede tener valor de retorno ni especificar un tipo de valor de retorno.
Por ejemplo, delegado público int MethodtDelegate(int x, int y); Indica que hay dos parámetros y devuelve un tipo int.
(2). Acción
Action es un delegado genérico sin valor de retorno.
La acción representa a un delegado sin parámetros ni valor de retorno
Action<int,string> indica un delegado con un parámetro entrante int y sin valor de retorno para la cadena
Action<int, string, bool> indica un delegado con parámetros entrantes int, string, bool sin valores de retorno
Action<int, int, int, int> significa que se han pasado 4 parámetros de tipo int y no hay valor de retorno
La acción tiene al menos 0 parámetros y un máximo de 16 parámetros, sin valor de retorno.
Ejemplo:
(3). Función
Func es un delegado genérico con un valor de retorno
Func<int> significa un delegado sin parámetros y devuelve un valor int
Func<object,string,int> representa un delegado con el parámetro entrante como objeto y la cadena devuelve un valor int
Func<object,string,int> representa un delegado con el parámetro entrante como objeto y la cadena devuelve un valor int
Func<T1,T2,,T3,int> representa un delegado con el parámetro de entrada T1, T2, ,T3 (genérico) que devuelve un valor de int
Func tiene al menos 0 parámetros y un máximo de 16 parámetros, que se devuelven según el valor de retorno genérico. Debe haber un valor de retorno, no nulo
Ejemplo:
(4) .predicado
El predicado es un delegado genérico que devuelve un tipo bool
El<int> predicado representa un delegado cuyo parámetro entrante int devuelve bool
El predicado tiene y solo un parámetro, y el valor de retorno se fija a bool
Ejemplo:
|