C#委托冒泡
2016-04-19 00:26
357 查看
委托的实现,就是编译器自行定义了一个类:有三个重要参数1.制定操作对象,2.指定委托方法3.委托链
看如下一个列子:
调用
看如下一个列子:
class DelegatePratice { public static void Sort<T>(IList<T> sortArray, Func<T, T, bool> Comparison) { bool swapped = true; do { swapped= false; for (int i = 0; i < sortArray.Count - 1; i++) { if (Comparison(sortArray[i], sortArray[i + 1])) { T temp = sortArray[i]; sortArray[i] = sortArray[i + 1]; sortArray[i + 1] = temp; swapped = true; } } } while (swapped); } } 定义实体类:
class Employee { public Employee(string name, decimal salary) { this.Name = name; this.Salary = salary; } public string Name { get; set; } public decimal Salary { get; set; } /// <summary> /// 重写object的ToString方法 /// </summary> /// <returns></returns> public override string ToString() { return string.Format("{0},{1:C}",Name,Salary); } /// <summary> /// 比较两员工的工资以此排序 /// </summary> /// <param name="e1"></param> /// <param name="e2"></param> /// <returns></returns> public static bool Comparison(Employee e1, Employee e2) { return e1.Salary > e2.Salary; } }
调用
class Program { static void Main(string[] args) { Employee[] employees = { new Employee("simen", 5500), new Employee("shelly", 5900), new Employee("pool", 4300), new Employee("renata", 3800) }; DelegatePratice.Sort(employees, Employee.Comparison); foreach (Employee employee in employees) { Console.WriteLine(employee); } Console.ReadKey(); } } }
相关文章推荐
- C#基本概念
- C#学习笔记 day_two
- 读C#委托与事件笔记
- 读C#线程及线程池笔记
- C#Dictionary
- c#学习笔记六 多态性详解
- c#的接口详解
- c#学习笔记五 面向对象编程的基本概念 接口 继承和多态
- 读C#线程方面知识做笔记
- c#学习笔记四 委托
- C#枚举类型
- C# WinForm DataTable 导出 Excel 多行表头、合并单元格
- 【C# 设计模式-简单工厂模式 】
- 《C#入门经典v6》读书笔记4 数据访问
- C#学习-防止重复运行
- 《C#入门经典v6》读书笔记3 Web编程
- c#学习笔记三 输出参数
- c# 支付宝查单补单
- C#学习笔记二 引用参数和值参数
- c# class struct区别