using System; static class E { public static string Test (this C c, T s, Func f) { return "s"; } } public class C { int Test (T b, Func f) { return 1; } static string Foo (T t, Action a) { a (t); return "f"; } public static void Main () { var c = new C (); Action f = l => Foo ("v", l2 => c.Test ("a", () => "")); f ("-"); } }