Beispiel #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Anonymous Methods:");
            Console.WriteLine("Generic Delegate as a Call-Back method");

            double[]  myDoubles  = { 2, 1.41, 7.2 };
            int[]     myIntegers = { 2, 3, 7 };
            decimal[] myDecimals = { 5.6M, 8.2M, -2.345M };

            // Because myDoubles is a double array,
            // compiler looks for method Square that
            // has type parameter of  double.
            Console.WriteLine("\r\nSquaring doubles with callback:");
            Transformer <double> doubleTransformer =
                delegate(double x)
            {
                return(x * x);
            };

            Transformers.Transform(myDoubles, doubleTransformer);

            foreach (var item in myDoubles)
            {
                Console.WriteLine("Squared Double: "
                                  + item);
            }

            // Because myIntegers is an integer array,
            // compiler looks for method Square that
            // has type parameter of int.
            Console.WriteLine("\r\nSquaring integers with callback:");
            Transformers.Transform(myIntegers,
                                   delegate(int x)
            {
                return(x * x);
            });

            foreach (var item in myIntegers)
            {
                Console.WriteLine("Squared Int: "
                                  + item);
            }

            Console.WriteLine("\r\nUsing pre-defined Func delegate:");
            Transformers.TransformFunc(myDecimals,
                                       delegate(decimal d)
            {
                return(d * d);
            });

            foreach (var item in myDecimals)
            {
                Console.WriteLine("Squared Decimal: "
                                  + item);
            }

            Console.WriteLine("Press <Enter> to quit the program:");
            Console.ReadLine();
        }