一个很经典的学习C# 委托的例子跟大家分享一下,希望对大家有点帮助,直接看代码:
BubbleSorter.cs using System; using System.Collections.Generic; using System.Text; namespace Wrox.ProCSharp.Delegates{ delegate bool Comparison( object x, object y); class BubbleSorter { static public void Sort( object [] sortArray, Comparison comparer) { for ( int i = 0 ; i < sortArray.Length; i ++ ) { for ( int j = i + 1 ; j < sortArray.Length; j ++ ) { if (comparer(sortArray[j], sortArray[i])) { object temp = sortArray[i]; sortArray[i] = sortArray[j]; sortArray[j] = temp; } } } } }}
Employee.cs using System; using System.Collections.Generic; using System.Text; namespace Wrox.ProCSharp.Delegates{ class Employee { private string name; private decimal salary; public Employee( string name, decimal salary) { this .name = name; this .salary = salary; } public override string ToString() { return string .Format( " {0}, {1:C} " , name, salary); } public static bool CompareSalary( object x, object y) { Employee e1 = (Employee)x; Employee e2 = (Employee)y; return (e1.salary < e2.salary); } }}
Program.cs using System; using System.Collections.Generic; using System.Text; namespace Wrox.ProCSharp.Delegates{ class Program { static void Main() { Employee[] employees = { new Employee( " Bugs Bunny " , 20000 ), new Employee( " Elmer Fudd " , 10000 ), new Employee( " Daffy Duck " , 25000 ), new Employee( " Wiley Coyote " , ( decimal ) 1000000.38 ), new Employee( " Foghorn Leghorn " , 23000 ), new Employee( " RoadRunner' " , 50000 )}; // Comparison comp = Employee.CompareSalary; // 用Employee.CompareSalary方法实例化一个委托。 BubbleSorter.Sort(employees, Employee.CompareSalary); foreach (var employee in employees) { Console.WriteLine(employee); } Console.ReadLine(); // for (int i = 0; i < employees.Length; i++) // Console.WriteLine(employees[i].ToString()); } }}
转载于:https://www.cnblogs.com/iuices/archive/2011/05/06/2037288.html