Дельтагент Action<T>
возвращает void. Есть ли другой встроенный делегат, который возвращает не пустое значение?
Как описать делегат Action <T>, который возвращает значение (не пустое)?
Ответ 1
Да. Func<>
возвращает тип, указанный в качестве конечного типа типового типа, так что Func<int>
возвращает int
и Func<int, string>
принимает целое число и возвращает строку. Примеры:
Func<int> getOne = () => 1;
Func<int, string> convertIntToString = i => i.ToString();
Action<string> printToScreen = s => Console.WriteLine(s);
// use them
printToScreen(convertIntToString(getOne()));
Ответ 2
Конечно, делегаты Func возвращают T.
Func<TResult> is "TResult method()"
Func<TInput, TResult> is "TResult method(TInput param)"
До конца
Func<T1, T2, T3, T4, TResult>
http://msdn.microsoft.com/en-us/library/bb534960.aspx
http://msdn.microsoft.com/en-us/library/bb534303.aspx
Кроме того, для полноты есть Предикат, который возвращает bool.
Predicate<T> is "bool method(T param)"