El Action<T>
delegado vuelve vacío. ¿Hay algún otro delegado incorporado que devuelva un valor no nulo?¿Cómo describo un delegado Acción <T> que devuelve un valor (no válido)?
38
A
Respuesta
60
Sí. Func<>
devuelve el tipo especificado como parámetro de tipo genérico final, de modo que Func<int>
devuelve int
y Func<int, string>
acepta un número entero y devuelve una cadena. Ejemplos:
Func<int> getOne =() => 1;
Func<int, string> convertIntToString = i => i.ToString();
Action<string> printToScreen = s => Console.WriteLine(s);
// use them
printToScreen(convertIntToString(getOne()));
16
Claro, los delegados Func volver T.
Func<TResult> is "TResult method()"
Func<TInput, TResult> is "TResult method(TInput param)"
Todo el camino hasta
Func<T1, T2, T3, T4, TResult>
http://msdn.microsoft.com/en-us/library/bb534960.aspx
http://msdn.microsoft.com/en-us/library/bb534303.aspx
Además, en aras de la exhaustividad, hay es Predicate que devuelve bool.
Predicate<T> is "bool method(T param)"
Cuestiones relacionadas
- 1. Expresión Lambda que devuelve un delegado
- 2. Macro que devuelve un valor
- 3. ¿Cómo `({...})` devuelve un valor?
- 4. Cómo puedo crear un MethodInfo desde un delegado de Acción
- 5. ¿Cómo se prueba un método de acción que devuelve JsonResult?
- 6. Delegado para una acción < ref T1, T2>
- 7. ASP.NET MVC cómo hacer una acción que devuelve un archivo?
- 8. no es un valor válido AllXsd
- 9. usa Func <> (o Acción <>) o crea un delegado propio?
- 10. función anónima no siempre devuelve un valor
- 11. Comprobando si un cierto tipo es un delegado de Acción
- 12. C# Tarea que devuelve un valor
- 13. ¿Cómo puedo crear un delegado de acción desde MethodInfo?
- 14. ¿Por qué readf no devuelve un valor?
- 15. Acción <T> vs evento de delegado
- 16. C# TimeSpan.El formato no válido devuelve un valor incorrecto en lugar de la excepción
- 17. ¿Cómo especifica el tipo System.Void un tipo de valor devuelto para un método que no devuelve un valor?
- 18. SPContext.Current.Web.CurrentUser devuelve un valor engañoso
- 19. ¿Cómo comprobar si SELECT EXISTS devuelve un valor o no?
- 20. Page.Request.UserHostAddress está en un formato no válido
- 21. Si una función no devuelve ningún valor, con un tipo de devolución válido, ¿está bien que el compilador tire basura?
- 22. Array.Encontrar con delegado. ¿Qué devuelve si no se encuentra?
- 23. Acción <T> o Acción <in T>?
- 24. Registry.LocalMachine.OpenSubKey() devuelve un valor nulo
- 25. ¿Hay un delegado que no sea un delegado de multidifusión en C#?
- 26. Subprocess.poll() devuelve un valor falsamente
- 27. Valor no válido para size_t
- 28. ¿Por qué C# permitiría un valor de enum no válido?
- 29. '{DependencyProperty.UnsetValue}' no es un valor válido para la propiedad 'FocusVisualStyle'
- 30. XmlSerializer: La cadena '' no es un valor AllXsd válido
Además, en .NET 4, 'Func <>' puede ser 'Func' El límite anterior era T4. –
Además, para completar * complete *, no olvide ['Converter (TInput, TOutput)'] (http://msdn.microsoft.com/en-us/library/kt456a2y.aspx) y ['Comparación (T) '] (http://msdn.microsoft.com/en-us/library/tfakywbh.aspx) (ambos obviamente anteriores a' Func 'y' Func ', lo que los hace obsoletos). En realidad, probablemente haya más que eso ... –
@Dan muy cierto, aunque son muy específicos debido a su nombre (que es todo lo que realmente hay que hacer). Utilicé Converter una vez: http://www.stum.de/2009/12/23/using-a-converter-to-convert-from-a-model-to-a-business-class/ –