Delegado de función sin tipo de retorno
Todos los Func<T>
delegados devuelven un valor. ¿Cuáles son los delegados de .NET que se pueden utilizar con métodos que devuelven void
?
Todos los delegados de Func devuelven algo; todos los delegados de Acción regresan vacíos.
Func<TResult>
no toma argumentos y devuelve TResult:
public delegate TResult Func<TResult>()
Action<T>
toma un argumento y no devuelve un valor:
public delegate void Action<T>(T obj)
Action
es el delegado "desnudo" más simple:
public delegate void Action()
También hay Func<TArg1, TResult>
y Action<TArg1, TArg2>
(y otros hasta 16 argumentos). Todos estos (excepto Action<T>
) son nuevos en .NET 3.5 (definidos en System.Core).
... ¿no acepta argumentos y tiene un tipo de retorno nulo?
Creo Action
que es una solución a esto.
Todos los delegados de Func toman al menos un parámetro.
Eso no es cierto. Todos toman al menos un argumento de tipo, pero ese argumento determina el tipo de retorno.
Entonces Func<T>
no acepta parámetros y devuelve un valor. Utilice Action
o Action<T>
cuando no desee devolver un valor.