Estoy tratando de escribir lo siguiente: Me gustaría escribir un método "A" que toma como parámetro otro método "B" así como un número desconocido de parámetros para este método B. (params object [] args). Ahora, dentro del método A, me gustaría hacer una llamada a B con los parámetros args. B ahora devolverá un objeto al que me gustaría que A también regrese.C# Método que ejecuta un Método dado
Todo esto suena un poco extraño, por lo tanto, voy a añadir un código de ejemplo:
public object A(Func<object> B, params object[] args)
{
object x = B.Method.Invoke(args);
return x;
}
El problema es, que Func no funciona de esa manera. ¿Alguien sabe una manera de hacer esto?
Saludos, Cristiano
hace el código de trabajo si se pasa solamente algunos parámetros definidos, por ejemplo, si se define Func para aceptar un entero y una cadena? Creo que su código está casi bien, no estoy seguro de si Func podría definirse para aceptar params ... –
Sí, funciona si defino los parámetros. Sin embargo, no acepta algo como Func B. –
Christian
¿Es una firma fija? ¿Sabes qué tipo B devuelve y lleva? Si no, entonces no puede usar ninguna firma Func <..>. Deberá usar Delegar y invocación dinámica. http://msdn.microsoft.com/en-us/library/system.delegate.dynamicinvoke.aspx – davidfowl