Advertisement
Rakshalpha

MainProgram

Aug 16th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.01 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5.  
  6. namespace DelegatesAndEvents
  7. {
  8.  
  9.     //public delegate void WorkPerformedHandler(int hours, WorkType workType);
  10.     //public delegate int WorkPerformedHandlerI(int hours, WorkType workType);
  11.     public delegate int BizRulesDelegate(int x, int y);
  12.  
  13.     class Program
  14.     {
  15.         static void Main(string[] args)
  16.         {
  17.             #region Code Examples from Training
  18.             // WorkPerformedHandler del1 = new WorkPerformedHandler(WorkPerformed1);
  19.             // WorkPerformedHandler del2 = new WorkPerformedHandler(WorkPerformed2);
  20.             // WorkPerformedHandler del3 = new WorkPerformedHandler(WorkPerformed3);
  21.  
  22.             // WorkPerformedHandlerI deli1 = new WorkPerformedHandlerI(WorkPerformed1i);
  23.             // WorkPerformedHandlerI deli2 = new WorkPerformedHandlerI(WorkPerformed2i);
  24.             // WorkPerformedHandlerI deli3 = new WorkPerformedHandlerI(WorkPerformed3i);
  25.  
  26.  
  27.             // del1(5, WorkType.Golf);
  28.             // del2(10, WorkType.GenerateReports);
  29.  
  30.             // This does the same thing as the delegates defined above
  31.             // DoWork(del1);
  32.  
  33.             // Overwrites what is in del1 with the data given to del2 and del3
  34.             // del1 = del2 + del3;
  35.  
  36.             // Adds in the data from del2 and del3 ontop of del1 data
  37.             // del1 += del2 + del3;
  38.  
  39.             // del1(10, WorkType.Golf);
  40.  
  41.             // deli1 += deli2 + deli3;
  42.  
  43.             // int finalHours = deli1(10, WorkType.Golf);
  44.             // Console.WriteLine(finalHours);
  45.             // BizRulesDelegate addDel = (x, y) => x + y;
  46.             BizRulesDelegate multiplyDel = (x, y) => x * y;
  47.  
  48.  
  49.             #endregion
  50.  
  51.             var custs = new List<Customer>
  52.             {
  53.                 new Customer {City = "Phoenix", FirstName = "John", LastName = "Smith", ID = 0 },
  54.                 new Customer {City = "Phoenix", FirstName = "Jane", LastName = "Doe", ID = 1},
  55.                 new Customer {City = "Seattle", FirstName = "Suki", LastName = "Suki", ID = 2},
  56.                 new Customer {City = "New York City", FirstName = "Michelle", LastName = "Yakson", ID = 3},
  57.             };
  58.  
  59.             var phxCusts = custs
  60.                 .Where(c => c.City == "Phoenix" && c.ID > 0)
  61.                 .OrderBy(c => c.FirstName);
  62.  
  63.             foreach (var cust in phxCusts)
  64.             {
  65.                 Console.WriteLine(cust.FirstName);
  66.             }
  67.  
  68.             var data = new ProcessData();
  69.             Func<int, int, int> funcAddDel = (x, y) => x + y;
  70.             Func<int, int, int> funcMultipleDel = (x, y) => x * y;
  71.             data.Process(2, 3, multiplyDel);
  72.  
  73.             Action<int, int> myAction = (x, y) => Console.WriteLine(x + y);
  74.             Action<int, int> myMultiplyAction = (x, y) => Console.WriteLine(x * y);
  75.  
  76.             data.ProcessFunc(3, 2, funcAddDel);
  77.             data.ProcessFunc(3, 2, funcMultipleDel);
  78.  
  79.             //var worker = new Worker();
  80.             //worker.WorkPerformed += (s, e) => Console.WriteLine($"Worked: {e.Hours} hours(s) doing: {e.WorkType}");
  81.             //worker.WorkCompleted += (s, e) => Console.WriteLine($"Worker is done!");
  82.             //worker.DoWork(8, WorkType.GenerateReports);
  83.  
  84.             Console.Read();
  85.         }
  86.  
  87.         //static void Worker_WorkPerformed(object sender, WorkPerformedEventArgs e)
  88.         //{
  89.         //    Console.WriteLine($"{e.Hours} hour worked on: {e.WorkType}");
  90.         //}
  91.  
  92.         //static void Worker_WorkCompleted(object sender, EventArgs e)
  93.         //{
  94.         //    Console.WriteLine($"Worker is done!");
  95.         //}
  96.  
  97.  
  98.         //static void DoWork(WorkPerformedHandler del)
  99.         //{
  100.         //    del(5, WorkType.GoingToMeetings);
  101.         //}
  102.  
  103.         //static void WorkPerformed1(int hours, WorkType workType)
  104.         //{
  105.         //    Console.WriteLine($"Workperform1 called!\n{hours} hours\n{workType}");
  106.         //}
  107.  
  108.         //static int WorkPerformed1i(int hours, WorkType workType)
  109.         //{
  110.         //    Console.WriteLine($"Workperform1 called!\n{hours} hours\n{workType}");
  111.         //    return hours + 1;
  112.         //}
  113.  
  114.         //static void WorkPerformed2(int hours, WorkType workType)
  115.         //{
  116.         //    Console.WriteLine($"Workperform2 called!\n{hours} hours\n{workType}");
  117.         //}
  118.  
  119.         //static int WorkPerformed2i(int hours, WorkType workType)
  120.         //{
  121.         //    Console.WriteLine($"Workperform1 called!\n{hours} hours\n{workType}");
  122.         //    return hours + 2;
  123.         //}
  124.  
  125.         //static void WorkPerformed3(int hours, WorkType workType)
  126.         //{
  127.         //    Console.WriteLine($"Workperform3 called!\n{hours} hours\n{workType}");
  128.         //}
  129.  
  130.         //static int WorkPerformed3i(int hours, WorkType workType)
  131.         //{
  132.         //    Console.WriteLine($"Workperform1 called!\n{hours} hours\n{workType}");
  133.         //    return hours + 3;
  134.         //}
  135.     }
  136.  
  137.     public enum WorkType
  138.     {
  139.         Golf,
  140.         GoingToMeetings,
  141.         GenerateReports
  142.     }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement