static void DelegetProcess(ReandomCompare compare, int x, int y) { Console.WriteLine($"x+y:{compare(x,y)}"); }
static void Main(string[] args) { #region Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Console.WriteLine("Hello World!"); ReandomCompare comp = compare; for (int p = 5; p > 0; p--) { DelegetProcess(comp, p, new Random().Next(1, p)); } int pop = 102; GetAsString getString = new GetAsString(pop.ToString); Console.WriteLine($"方法名:{getString()}"); Console.WriteLine($"string is{getString.Invoke()}"); Curreny curreny = new Curreny(99, 334); getString = curreny.ToString; Console.WriteLine($"方法名: { getString()}"); getString = new GetAsString(Curreny.GetCurrentUnity); Console.WriteLine($"方法名: { getString()}"); getString = () => Curreny.GetDescription(); Console.WriteLine($"方法名: { getString()}"); Console.WriteLine("Func方法调用完成"); for (int p = 5; p > 0; p--) { CompareProcess(CompareDouble, p, new Random().Next(1, p)); } Console.WriteLine("Func方法调用完成"); Console.ReadLine(); int[] arg = { 1, 22, 4, 3, 21, 11, 24, 2, 42, 18, 33 }; Console.WriteLine("排序前"); Console.WriteLine(string.Join(",", arg.Select(x => x.ToString()).ToArray())); bool swapped = true; do { swapped = false; for (int t = 0; t < arg.Length - 1; t++) { if (arg[t] > arg[t + 1]) { int p = arg[t]; arg[t] = arg[t + 1]; arg[t + 1] = p; swapped = true; } } } while (swapped); Console.WriteLine("排序后"); Console.WriteLine(string.Join(",", arg.Select(x => x.ToString()).ToArray())); Console.ReadLine(); Console.WriteLine("测试实例静态方法委托"); Employee[] employees = new Employee[] { new Employee("张三", 20092002), new Employee("李四", 1789272), new Employee("王五", 1212), new Employee("孙六", 2323), new Employee("钱七", 32112321), new Employee("刘八", 3132132) }; BubbleSorter.Sort <Employee>(employees, Employee.CompareSalary); foreach (Employee e in employees) { Console.WriteLine(e.ToString()); } Console.ReadLine(); Console.WriteLine("测试实例对象委托"); Employee[] employee = new Employee[] { new Employee("张三", 20092002), new Employee("李四", 1789272), new Employee("王五", 2323232.9m), new Employee("孙六", 2323.3m), new Employee("钱七", 32112321), new Employee("刘八", 3132132), new Employee("三八", 223213132) }; Member <Employee> member = new Member <Employee>(employee); BubbleSorter.Sort <Employee>(member.Employees, member.CompareSalaryPro); foreach (Employee e in member.Employees) { Console.WriteLine(e.ToString()); } Console.ReadLine(); DoubleOp[] doubleOps = { MethOperations.MultiplyByTwo, MethOperations.Square }; for (int t = 0; t < doubleOps.Length; t++) { Console.WriteLine(doubleOps[0].Invoke(99)); Console.WriteLine(doubleOps[0](93)); Console.WriteLine(doubleOps[1].Invoke(19)); } double num = 99.0; GetTwoString getTwoString = new GetTwoString(GetTwoStringSample); //GetTwoString getTwoString = GetTwoStringSample; getTwoString(num); getTwoString.Invoke(num); #endregion Func <double, double>[] funcdoubleOps = { MethOperations.MultiplyByTwo, MethOperations.Square }; funcdoubleOps[0].Invoke(99); funcdoubleOps[1](892); ProcessDeleget(funcdoubleOps[0], 999002); int[] sorts = { 1, 32, 31, 3, 21, 13, 4, 22 }; Console.WriteLine($"排序前:{string.Join(",",sorts.Select(x=>x.ToString()))}"); Console.ReadLine(); // Func<int,int,bool> func = comparison; Func <int, int, bool> func = (x, y) => x > y; bool stop = true; do { stop = false; for (int p = 0; p < sorts.Length - 1; p++) { //bool result = func(sorts[p], sorts[p + 1]); //if (result) //{ // int temp = sorts[p]; // sorts[p] = sorts[p + 1]; // sorts[p + 1] = temp; // stop = true; //} if (sorts[p] > sorts[p + 1]) { int temp = sorts[p]; sorts[p] = sorts[p + 1]; sorts[p + 1] = temp; stop = true; } } } while (stop); Console.WriteLine($"排序后:{string.Join(",", sorts.Select(x => x.ToString()))}"); Console.ReadLine(); }