委托
委托是寻址方法的.NET版本。
在C#高级编程(第七版)中这是对委托的第一句描述。
什么是寻址方法?
简单理解为我们通过委托传递一个方法给另一个方法。
什么时候需要传递方法?
在微软的官方文档和C#高级编程(第七版)这本书都提到一个例子-----在对象的排序算法中,需要对对象进行比较,而不同对象比较的方法不同,所以比较两个对象的方法的引用可以作为参数传递到排序算法中,这个时候就需要传递方法。
通过什么传递方法?
在理解委托的时候经常将其与C++中的函数指针做比较,函数指针只是一个指向内存位置的指针,它不是类型安全的,我们无法判断这个指针实际指向什么,参数和返回类型更加无从知晓。但我们可以通过该函数指针获得该方法也可以理解为通过传递地址来传递该方法;
函数指针是面向过程的,而C#是面向对象编程,几乎没有方法是孤立存在的,而是在调用方法之前需要与类的实例相关联。
所以.NET框架不允许使用函数指针这种直接的方法,因为这这很不面向对象!
那如何才符