static void Main(string[] args) { Console.WriteLine("Hello Del20200327c!"); (int a, int b) = GetInput(); Console.WriteLine("=======using a method call========="); int result = Add(a, b); Console.WriteLine(result); result = Sub(a, b); Console.WriteLine(result); result = Prod(a, b); Console.WriteLine(result); result = Mod(a, b); Console.WriteLine(result); result = Pow(a, b); Console.WriteLine(result); Console.WriteLine("=======using a delegate========="); IntDel idel = new IntDel(Add); Console.WriteLine(idel(a, b)); idel = Sub; Console.WriteLine(idel(a, b)); idel = Prod; Console.WriteLine(idel(a, b)); idel = Mod; Console.WriteLine(idel(a, b)); idel = Pow; Console.WriteLine(idel(a, b)); }
static void Main(string[] args) { // Inicialização e chamada (invoke) do delegate //IntDel del = new IntDel(Add); // Explicitamente como qualquer objeto IntDel del = Add; // implicitamente //int result = del.Invoke(1, 2); // chamada explicita int result = del(1, 2); //implicita Console.WriteLine("Resultado: {0}", result); }
static void Main(string[] args) { // Write code in Main that initializes and invokes the delegate //IntDel del = new IntDel(Add); // Explicit del init IntDel del = Add; //int result = del.Invoke(1, 2); // Explicit invocation int result = del(1, 2); Console.WriteLine("Add result: {0}", result); }
static void Main(string[] args) { //Write code in Main that initializes and invokes the delegate //var del = new IntDel(Add);//Optional IntDel del = Add; //Invoke the delegate //int result = del(1, 2);//Optional int result = del.Invoke(1, 2); Console.WriteLine("Add Result: {0}", result); Console.ReadLine(); }
static void Main(string[] args) { WuDel_Class wuDel_Class = new WuDel_Class(); //调用无参数的委托 WuDel wuDel = wuDel_Class.Print1; wuDel += wuDel_Class.Print2; wuDel += wuDel_Class.Print1;//现在,委托的方法列表中有3个方法 Console.WriteLine("无参委托:"); if (null != wuDel) { wuDel(); } else { Console.WriteLine("委托为空"); } IntDel_Class intDel_Class = new IntDel_Class(); //调用有返回值的委托 IntDel intDel = intDel_Class.Add2; intDel += intDel_Class.Add3; intDel += intDel_Class.Add2; Console.WriteLine("带返回值委托:"); Console.WriteLine("Value:{0}", intDel()); RefDel_Class refDel_Class = new RefDel_Class(); //带引用参数的委托 RefDel refDel = refDel_Class.Add2; refDel += refDel_Class.Add3; refDel += refDel_Class.Add2; int Intvalue = 5; refDel(ref Intvalue);//调用 Console.WriteLine("带引用参数的委托:"); Console.WriteLine("Value:{0}", Intvalue.ToString()); Console.ReadKey(); }
private static void Main(string[] args) { // WRITE CODE IN MAIN THAT INITIALIZES AND INVOKES THE DELEGATE var delA = new IntDel(Add); IntDel delB = Add; // INVOKE THE DELEGATE int resultA1 = delA.Invoke(1, 2); int resultA2 = delB.Invoke(2, 3); // QUERIES!!! // Standard Query IEnumerable <int> highScoresQuery = // Query Variable from number in d.users // Required where number.Fav > 50 // Optional orderby number.Fav descending // Optional select number.Fav; // Must end in Select or Groupby // Projection - Int to a String IEnumerable <string> highScoresQuery2 = from number in d.users where number.Fav > 80 orderby number.Fav descending select $"The score is {number}"; // Count Expression int highScoreCount = (from number in d.users where number.Fav > 80 select number.Fav) .Count(); /********* OR ***********/ IEnumerable <int> highScoresQuery3 = from number in d.users where number.Fav > 80 select number.Fav; int scoreCount = highScoresQuery3.Count(); // Groupby var queryNumberGroup = (from number in d.users group number by number.Fav >= 75); // Projection - Anonnymous Type var favNumQuery = from user in d.users select new { name = user.F_name + " " + user.L_name, number = user.Fav }; // averageQuery is an IEnumerable<IGrouping<int, User>> var averageQuery = from user in d.users let tenth = (int)user.Fav / 10 group user by tenth into userGrouped orderby userGrouped.Key descending where userGrouped.Key > 5 select userGrouped; // Filtering using Where clause var rangeFavs = from user in d.users where user.Fav > 50 && user.Fav < 80 select new { name = user.F_name + " " + user.L_name, favNum = user.Fav }; // Orderby Clause IEnumerable <User> userQuery = from user in d.users orderby user.F_name, user.L_name descending select user; // Join Clause var favFimlQuery = from user in d.users join film in d.films on user.Fav equals film.FilmID orderby user.F_name, user.L_name select new { user = user.F_name + " " + user.L_name, film.FilmTitle }; // Let Clause string[] names = { "Svetlana Omelchenko", "Claire O'Donnell", "Sven Mortensen", "Cesar Garcia" }; IEnumerable <string> queryFirstNames = from name in names let firstName = name.Split(' ')[0] select firstName; // SubQueries var queryGroupMax = from student in d.students group student by student.Year into studentGroup select new { Level = studentGroup.Key, HighestScore = (from student2 in studentGroup select student2.ExamScores.Average()) .Max() }; // Query Syntax // Query #1 IEnumerable <int> numbersList = numbers1.Concat(numbers2); IEnumerable <int> filteringQuery = from number in numbersList where number < 3 || number > 7 select number; // Query #2 IEnumerable <int> orderingQuery = from num in numbersList where num < 3 || num > 7 orderby num ascending select num; // Method Syntax // Query #1 double average = numbers1.Average(); // Query #2 IEnumerable <int> concatedValues = numbers1.Concat(numbers2); // Query #3 IEnumerable <int> largeNumbersQuery = numbers2.Where(c => c > 15); // Mixed query and method syntax // Query #1 int numCount1 = (from num in numbers1 where num < 3 || num > 7 select num).Count(); // Query #2 IEnumerable <int> numbersQuery = from num in numbers1 where num < 3 || num > 7 select num; int numCount2 = numbersQuery.Count(); IEnumerable <int> queryFactorsOfFour = from num in numbers1.Concat(numbers2) where num % 4 == 0 select num; List <int> factorsofFourList = queryFactorsOfFour.ToList(); // OUTPUT!! Console.Write("Press any key to continue. . ."); Console.ReadKey(); }