Beispiel #1
0
        static int SumWithFunc(int[] elements, FunctionTakingOneIntAndReturningAnInt f)
        {
            int sum = 0;

            foreach (var i in elements)
            {
                sum += f(i);
            }
            return(sum);
        }
Beispiel #2
0
        static void Main1(string[] args)
        {
            #region Delegate Definition
            ProcessSingleString printingUsingPrintString = PrintString;
            printingUsingPrintString("Hello World explicit");

            ProcessSingleString printByDelegateInstantiation = delegate(string s) { Console.WriteLine(s); };
            printByDelegateInstantiation("Hello World Delegate Instantiation");
            #endregion


            #region use of delegates
            int[] arr = new int[] { 11, 12, 13, 14 };
            Debug.WriteLine("Sum of arr square = " + SumWithFunc(arr, Square));
            Debug.WriteLine("Sum of arr unit positions = " + SumWithFunc(arr, UnitPos));

            #endregion


            #region AnonFunc
            ProcessSingleString printingUsingAnonymous = (s) => { Console.WriteLine(s); };
            printingUsingAnonymous("Hello World Anon");

            //expression vs code block
            FunctionTakingOneIntAndReturningAnInt unitPosAnon = (x) => { return(x % 10); };
            FunctionTakingOneIntAndReturningAnInt squareAnon  = (x) => (x * x);
            #endregion


            #region Func and Action
            Func <int, int>      squareFunc  = (x) => (x * x);
            Func <int, int, int> add         = (a, b) => (a + b);
            Action <string>      printAction = (x) => { Debug.WriteLine(x); };
            printAction("Hello world action");
            #endregion

            seqSum(students, (x) => x.ChemistryMarks);
        }