Esempio n. 1
0
 static void CallByRef(ref Value a)
 {
     a.Test();
     a = new Value(7);
 }
Esempio n. 2
0
        static void Main()
        {
            {
                TestLogger.Log("Testing array initialization...");
                var arr = new int[4];
                arr[1] = 3;
                arr[3] = 7;
                for (var i = 0; i < arr.Length; i++)
                    TestLogger.Log(arr[i]);
            }

            {
                TestLogger.Log("Testing array initializers...");
                var arr = new int[] { 1, 2, 3, 4, 5 };
                Test(arr);

                TestLogger.Log("Testing array copy...");
                var copy = new int[9];
                Array.Copy(arr, 0, copy, 0, arr.Length);
                for (var i = 0; i < copy.Length; i++)
                    TestLogger.Log(copy[i]);

                TestLogger.Log("Testing array out of range behavior...");
                try
                {
                    TestLogger.Log(arr[29]);
                }
                catch (Exception e)
                {
                    TestLogger.LogException(e);
                }
                try
                {
                    arr[29] = 3;
                }
                catch (Exception e)
                {
                    TestLogger.LogException(e);
                }
            }

            {
                TestLogger.Log("Testing simple enumeration...");
                var sb = new StringBuilder();
                var first = true;
                foreach (var prime in primes)
                {
                    if (first)
                        first = false;
                    else
                        sb.Append(",");
                    sb.Append(prime.ToString());
                }
                TestLogger.Log(sb.ToString());
            }

            {
                TestLogger.Log("Testing refs to array elements...");
                var arr = new Value[] { new Value(1), new Value(2), new Value(3) };
                arr[1].Test();
                CallByRef(ref arr[1]);
                arr[1].Test();
            }

            {
                var arr = new B[9];
                FillAsA(arr);
                FillAsB(arr);
                FillAsArray(arr);
                EnumAsB(arr);
                EnumAsA(arr);
                EnumAsArray(arr);
            }


            {
                TestLogger.Log("Testing multi-dimensional arrays...");
                var arr = new int[3, 7];
                var k = 0;
                for (var i = 0; i < 3; i++)
                {
                    for (var j = 0; j < 7; j++)
                    {
                        arr[i, j] = primes[k++];
                        if (k >= primes.Length)
                            k = 0;
                    }
                }
                foreach (var v in arr)
                    TestLogger.Log(v);
            }
        }