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(); }
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); } } }