Func <> com número desconhecido de parâmetros

Considere o seguinte pseudo-código:

    TResult Foo<TResult>(Func<T1, T2,...,Tn, TResult> f, params object[] args)
    {
        TResult result = f(args);
        return result;
    }

A função aceitaFunc<>&nbsp;com número desconhecido de parâmetros genéricos e uma lista dos argumentos correspondentes. É possível escrevê-lo em c #? Como definir e chamarFoo? Como passoargs&nbsp;paraf?