static void Main(string[] args) { Delegate1 d1 = new Delegate1(Method1); Delegate2 d2 = d1(); d2(); Functional func = new Functional(MethodF); D3 d3 = func.Invoke(new D1(M1), new D2(M2)); Console.WriteLine(d3.Invoke()); }