Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace DelegatesAndEvents
- {
- //public delegate void WorkPerformedHandler(int hours, WorkType workType);
- //public delegate int WorkPerformedHandlerI(int hours, WorkType workType);
- public delegate int BizRulesDelegate(int x, int y);
- class Program
- {
- static void Main(string[] args)
- {
- #region Code Examples from Training
- // WorkPerformedHandler del1 = new WorkPerformedHandler(WorkPerformed1);
- // WorkPerformedHandler del2 = new WorkPerformedHandler(WorkPerformed2);
- // WorkPerformedHandler del3 = new WorkPerformedHandler(WorkPerformed3);
- // WorkPerformedHandlerI deli1 = new WorkPerformedHandlerI(WorkPerformed1i);
- // WorkPerformedHandlerI deli2 = new WorkPerformedHandlerI(WorkPerformed2i);
- // WorkPerformedHandlerI deli3 = new WorkPerformedHandlerI(WorkPerformed3i);
- // del1(5, WorkType.Golf);
- // del2(10, WorkType.GenerateReports);
- // This does the same thing as the delegates defined above
- // DoWork(del1);
- // Overwrites what is in del1 with the data given to del2 and del3
- // del1 = del2 + del3;
- // Adds in the data from del2 and del3 ontop of del1 data
- // del1 += del2 + del3;
- // del1(10, WorkType.Golf);
- // deli1 += deli2 + deli3;
- // int finalHours = deli1(10, WorkType.Golf);
- // Console.WriteLine(finalHours);
- // BizRulesDelegate addDel = (x, y) => x + y;
- BizRulesDelegate multiplyDel = (x, y) => x * y;
- #endregion
- var custs = new List<Customer>
- {
- new Customer {City = "Phoenix", FirstName = "John", LastName = "Smith", ID = 0 },
- new Customer {City = "Phoenix", FirstName = "Jane", LastName = "Doe", ID = 1},
- new Customer {City = "Seattle", FirstName = "Suki", LastName = "Suki", ID = 2},
- new Customer {City = "New York City", FirstName = "Michelle", LastName = "Yakson", ID = 3},
- };
- var phxCusts = custs
- .Where(c => c.City == "Phoenix" && c.ID > 0)
- .OrderBy(c => c.FirstName);
- foreach (var cust in phxCusts)
- {
- Console.WriteLine(cust.FirstName);
- }
- var data = new ProcessData();
- Func<int, int, int> funcAddDel = (x, y) => x + y;
- Func<int, int, int> funcMultipleDel = (x, y) => x * y;
- data.Process(2, 3, multiplyDel);
- Action<int, int> myAction = (x, y) => Console.WriteLine(x + y);
- Action<int, int> myMultiplyAction = (x, y) => Console.WriteLine(x * y);
- data.ProcessFunc(3, 2, funcAddDel);
- data.ProcessFunc(3, 2, funcMultipleDel);
- //var worker = new Worker();
- //worker.WorkPerformed += (s, e) => Console.WriteLine($"Worked: {e.Hours} hours(s) doing: {e.WorkType}");
- //worker.WorkCompleted += (s, e) => Console.WriteLine($"Worker is done!");
- //worker.DoWork(8, WorkType.GenerateReports);
- Console.Read();
- }
- //static void Worker_WorkPerformed(object sender, WorkPerformedEventArgs e)
- //{
- // Console.WriteLine($"{e.Hours} hour worked on: {e.WorkType}");
- //}
- //static void Worker_WorkCompleted(object sender, EventArgs e)
- //{
- // Console.WriteLine($"Worker is done!");
- //}
- //static void DoWork(WorkPerformedHandler del)
- //{
- // del(5, WorkType.GoingToMeetings);
- //}
- //static void WorkPerformed1(int hours, WorkType workType)
- //{
- // Console.WriteLine($"Workperform1 called!\n{hours} hours\n{workType}");
- //}
- //static int WorkPerformed1i(int hours, WorkType workType)
- //{
- // Console.WriteLine($"Workperform1 called!\n{hours} hours\n{workType}");
- // return hours + 1;
- //}
- //static void WorkPerformed2(int hours, WorkType workType)
- //{
- // Console.WriteLine($"Workperform2 called!\n{hours} hours\n{workType}");
- //}
- //static int WorkPerformed2i(int hours, WorkType workType)
- //{
- // Console.WriteLine($"Workperform1 called!\n{hours} hours\n{workType}");
- // return hours + 2;
- //}
- //static void WorkPerformed3(int hours, WorkType workType)
- //{
- // Console.WriteLine($"Workperform3 called!\n{hours} hours\n{workType}");
- //}
- //static int WorkPerformed3i(int hours, WorkType workType)
- //{
- // Console.WriteLine($"Workperform1 called!\n{hours} hours\n{workType}");
- // return hours + 3;
- //}
- }
- public enum WorkType
- {
- Golf,
- GoingToMeetings,
- GenerateReports
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement