MulticastDelegate
delegate TResult Foo4<TResult,TArg>(TimeSpan timeout, TArg[] arg0)
TResult
TimeSpan
TArg[]