Delegado de función sin tipo de retorno

Resuelto Marcel Lamothe asked hace 15 años • 7 respuestas

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?

Marcel Lamothe avatar May 28 '09 02:05 Marcel Lamothe
Aceptado

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)

Actiones 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).

Jason avatar May 27 '2009 19:05 Jason

... ¿no acepta argumentos y tiene un tipo de retorno nulo?

Creo Actionque es una solución a esto.

Marcel Lamothe avatar May 27 '2009 19:05 Marcel Lamothe

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 Actiono Action<T>cuando no desee devolver un valor.

Joel Coehoorn avatar May 27 '2009 19:05 Joel Coehoorn