// // This test just verifies that we generate the proper signature for // EndInvoke, something that we were not doing before in the presence // of out parameters using System; class Test { delegate int D (int x, out int y); static int M (int x, out int y) { y = x + 2; return ++x; } public static int Main () { int x = 1; int y = 0; D del = new D (M); IAsyncResult ar = del.BeginInvoke (x, out y, null, null); if (del.EndInvoke (out y, ar) != 2) return 1; if (y != 3) return 2; Console.WriteLine ("Test ok"); return 0; } }