using System; class A { public virtual void Foo (T a, params string[] b) where T : struct { } } class B : A { public void Test (int v) { Action a = () => base.Foo (b: "n", a: v); a (); } public void Test2 (T b) where T : struct { Action a2 = () => base.Foo (b, "as", "asdfa"); } } class Test { public static void Main () { new B ().Test (1); } }