using System; class Factory { public class S { } public static S Create (F1 f1, F2 f2) { return null; } } class A { static TR Test(T1 t1, T2 t2, Func f) { return f (t1, t2); } public static void Main () { var r = Test ("a", "b", Factory.Create); } }