コード例 #1
0
        static void Main(string[] args)
        {
            var customers = new List <Customer>()
            {
                new Customer()
                {
                    City = "Phoenix", FirstName = "John", LastName = "Doe", ID = 1
                },
                new Customer()
                {
                    City = "Phoenix", FirstName = "Jane", LastName = "Doe", ID = 555
                },
                new Customer()
                {
                    City = "Seattle", FirstName = "Suki", LastName = "Pizzoro", ID = 3
                },
                new Customer()
                {
                    City = "New York City", FirstName = "Michelle", LastName = "Smith", ID = 4
                }
            };

            var phxCust = customers
                          .Where(c => c.City == "Phoenix" && c.ID < 500)
                          .OrderBy(c => c.FirstName);

            foreach (var cust in phxCust)
            {
                Console.WriteLine(cust.FirstName);
            }


            var processData = new ProcessDate();
            //=====================================Func<T, TResult> delegate + Lambdas======================================
            Func <int, int, int> myFunc         = (x, y) => x * (x + y);
            Func <int, int, int> myFuncMultiply = (x, y) => x * y;

            processData.ProcessFunc(2, 3, myFunc);
            processData.ProcessFunc(2, 3, myFuncMultiply);

            //=====================================Action<T> delegate + Lambdas======================================
            Action <int, int> myAction         = (x, y) => Console.WriteLine($"Is lamda Dalyba: {(double)x/(double)y }");
            Action <int, int> myMultiplyAction = (x, y) => Console.WriteLine($"Is lamda Daugyba: {x *y }");

            //processData.ProcessAction(4, 2, myAction);
            //processData.ProcessAction(4, 2, myMultiplyAction);

            //=====================================Lambdas======================================
            BizzRulesDelegate delMano     = new BizzRulesDelegate((x, y) => x * x + y * y);
            BizzRulesDelegate delAdd      = (x, y) => x + y; //galima iskart taip
            BizzRulesDelegate delMultiply = (x, y) => x * y;


            //processData.Process(2, 3, delMano);
            //processData.Process(2, 3, delAdd);
            //processData.Process(2, 3, delMultiply);



            var worker = new Worker();

            //=====================================Lambdas======================================
            //worker.WorkPerformed += (s, e) => Console.WriteLine($"LAMBDA: Dirbta valandu: {e.Hours}. Tokio darbo: {e.WorkType}");
            //jei norima daugiau neivienos eilutes reikia {}
            //worker.WorkPerformed += (s, e) =>
            //{
            //    Console.WriteLine($"LAMBDA: Dirbta valandu: {e.Hours}. Tokio darbo: {e.WorkType}");
            //    Console.WriteLine($"LAMBDA: Some other value!");
            //};
            //worker.WorkCompleted += (s, e) => Console.WriteLine("LAMBDA: Darbas baigtas");

            //=====================================Eventes======================================
            //budas1
            //worker.WorkPerformed += new EventHandler<WorkPerformedEventArgs>(Worker_WorkPerformed1);
            //worker.WorkCompleted += new EventHandler(Worker_WorkCompleted1);

            //budas2  Delegate inference
            //worker.WorkPerformed += Worker_WorkPerformed1; //stanalone method
            //worker.WorkPerformed += Worker_WorkPerformed2; //pridejimas i ivikation list

            //worker.WorkPerformed += delegate(object sender, WorkPerformedEventArgs e)
            //{
            //    Console.WriteLine($"Dirbta: {e.Hours}");
            //};
            //cia anoniminis metodas pridedamas tiesiai, minusas jo panaudot kitur jau nebegalima
            //retai naudojamas nes yra lambda


            //worker.WorkCompleted += Worker_WorkCompleted1;
            //worker.WorkCompleted += Worker_WorkCompleted2;
            //worker.WorkCompleted -= Worker_WorkCompleted2; //atemimas is ivikation list


            worker.DoWork(3, WorkType.GenerateReport);


            //==================================Delegates=========================================
            //WorkPerformedHandler del1 = new WorkPerformedHandler(WorkPerform1);
            //WorkPerformedHandler del2 = new WorkPerformedHandler(WorkPerform2);
            //var del3 = new WorkPerformedHandler(WorkPerform3);

            //del1(5, WorkType.Golf);
            //del2.Invoke(10, WorkType.GenerateReport);
            //DoWork(del2);

            //del1 += del3;
            //del1 += del2;
            //del1 += del3 + del2;  //galima ir taip. labai svarbu eiliskumas kokia eile bus
            //prideta taip ir perduodama bus

            //del1(6, WorkType.GoToMeeting);

            //Console.WriteLine(del1(5, WorkType.GoToMeeting)); //returnina tik veina Value
            //paskutinio is ideto i vokationlist mano atveju del2. todel returnina 7
        }
コード例 #2
0
        public void Process(int x, int y, BizzRulesDelegate del)
        {
            var result = del(x, y);

            Console.WriteLine(result);
        }
コード例 #3
0
 public void Process(int a, int b, BizzRulesDelegate del)
 {
     Console.WriteLine("result:-" + del?.Invoke(a, b));
 }