new [] { e1, ..., en }
that is, without the "x1 =" parts. (Thanks to Morten Kuenrich).
delegate void Action<out R>();
delegate void Action<in A1, out R>(A1 x1);
should be
delegate void Action();
delegate void Action<in A1>(A1 x1);