+++ /dev/null
-using System;
-
-public class X
-{
- public delegate void TestDelegate ();
-
- static long sum_i, sum_j, sum_k;
- static ulong sum_p, sum_q;
-
- public static int Test (int p)
- {
- TestDelegate d = null;
- for (int i = 1; i <= 5; i++) {
- for (int j = i; j <= 8; j++) {
- int k = i;
- TestDelegate temp = delegate {
- Console.WriteLine ("i = {0}, j = {1}, k = {2}, p = {3}",
- i, j, k, p);
- sum_i += 1 << i;
- sum_j += 1 << j;
- sum_k += 1 << k;
- sum_p += (ulong) (1 << p);
- p += k;
-
- ulong q = (ulong) (i * j);
-
- d += delegate {
- Console.WriteLine ("Nested i = {0}, j = {1}, " +
- "k = {2}, p = {3}, q = {4}",
- i, j, k, p, q);
- sum_q += q;
- };
- };
- temp ();
- d += temp;
- }
- }
- Console.WriteLine ("SUM i = {0}, j = {1}, k = {2}, p = {3}",
- sum_i, sum_j, sum_k, sum_p);
- Console.WriteLine ();
- if (sum_i != 300)
- return 1;
- if (sum_j != 2498)
- return 2;
- if (sum_k != 300)
- return 3;
- if (sum_p != 1825434804)
- return 4;
- sum_i = sum_j = sum_k = 0;
- sum_p = sum_q = 0;
- d();
- Console.WriteLine ("SUM i = {0}, j = {1}, k = {2}, p = {3}, q = {4}",
- sum_i, sum_j, sum_k, sum_p, sum_q);
- Console.WriteLine ();
- if (sum_i != 1920)
- return 5;
- if (sum_j != 15360)
- return 6;
- if (sum_k != 300)
- return 7;
- if (sum_p != 18446744073385831629)
- return 8;
- if (sum_q != 455)
- return 9;
- return 0;
- }
-
- public static int Main ()
- {
- int result = Test (5);
- if (result != 0)
- Console.WriteLine ("ERROR: {0}", result);
- else
- Console.WriteLine ("OK");
- return result;
- }
-}