示例#1
0
        public static void MainFunc()
        {
            int[] array = new int[] { 1, 2, -5, -7, 0, 3, -10, 4 };

            Console.WriteLine("Usual Method:");
            PrintPositiveNumber(array);
            Console.WriteLine();

            Console.WriteLine("Method with delegate:");
            PrintPositiveNumberViaDelegate(array, IsPositiveNumber);
            Console.WriteLine();

            Console.WriteLine("Method with anonymous delegate:");
            IsPositiveNumberDelegate isPositiveNumberAnonymous = delegate(int item)
            {
                return(item >= 0);
            };

            PrintPositiveNumberViaAnonymousDelegate(array, isPositiveNumberAnonymous);
            Console.WriteLine();

            Console.WriteLine("Method with Lambda:");
            PrintPositiveNumberViaDelegate(array, item => item >= 0);
            Console.WriteLine();

            Console.WriteLine("Method with Linq:");
            PrintPostiveNumberViaLinq(array);
            Console.WriteLine();

            Console.ReadKey();
        }
示例#2
0
        private static void PrintPositiveNumberViaAnonymousDelegate(int[] array, IsPositiveNumberDelegate func)
        {
            if (func == null)
            {
                throw new ArgumentException("Empty delegate");
            }

            foreach (var item in array)
            {
                if (func(item))
                {
                    Console.WriteLine(item);
                }
            }
        }