using System; class MainClass { public static void Main () { Test1 (l => l.GetItems ()); Test2 (l => l.GetItems2 ()); } static T[] Test1 (Func arg) { return null; } static IA[] Test2 (Func[]> arg) { return null; } } interface IA { } interface IB { string[] GetItems (); IA[] GetItems2 (); }