web-dev-qa-db-fra.com

Comment décrire un délégué Action <T> qui renvoie une valeur (non nulle)?

Le Action<T> le retour du délégué est nul. Existe-t-il un autre délégué intégré qui renvoie une valeur non nulle?

41
user496949

Oui. Func<> renvoie le type spécifié comme paramètre de type générique final, tel que Func<int> renvoie un int et Func<int, string> accepte un entier et renvoie une chaîne. Exemples:

Func<int> getOne = () => 1;
Func<int, string> convertIntToString = i => i.ToString();
Action<string> printToScreen = s => Console.WriteLine(s);
// use them

printToScreen(convertIntToString(getOne()));
66
Anthony Pegram

Bien sûr, les délégués Func retournent T.

Func<TResult> is "TResult method()"
Func<TInput, TResult> is "TResult method(TInput param)"

Tout le long jusqu'à

Func<T1, T2, T3, T4, TResult>

http://msdn.Microsoft.com/en-us/library/bb534960.aspx

http://msdn.Microsoft.com/en-us/library/bb534303.aspx

Aussi, par souci d'exhaustivité, il y a Predicate qui retourne bool.

Predicate<T> is "bool method(T param)"

http://msdn.Microsoft.com/en-us/library/bfcke1bz.aspx

17
Michael Stum