static void Main() { f <A1>(new A1()); f <A2>(new A2()); var a2 = new A2(); f2(() => a2.Choose(), a2); var a1 = new A1(); f2(() => a1.Choose(), a1); Console.ReadLine(); }