C#图解教程 第十三章 委托
委托 什么是委托 可以认为委托是持有一个或多个方法的对象。当然,正常情况下你不想“执行”一个对象,但委托与典型对象不同。可以执行委托,这时委托会执行它所“持有”的方法。 我们从下面的示例代码开始。具体细节将在本章剩余内容介绍。 代码开始部分声明了一个委托类型MyDel(没错,是委托类型不是委托对象) Program类声明了3个方法:PrintLow、PrintHigh和Main。接下来要创建的委托对象将持有PrintLow或PrintHigh方法,但具体使用哪个运行时确定 Main声明了局部变量del,持有一个MyDel类型的委托对象的引用。这不会创建对象。只是创建持有委托对象引用的变量,在几行后便会创建委托对象,并将值赋给这个变量 Main创建了Random类的对象,这是个随机数生成器类。接着调用该对象Next方法,将99作为参数。这会返回介于0到99间的随机整数,并将这个值保存在局部变量randomValue中 下面一行检查这个随机值是否小于50 小于50,就创建一个MyDel委托对象并初始化,让它持有PrintLow方法的引用 否则,就创建一个持有PrintHigh方法引用的MyDel委托对象 最后,Main执行委托对象del,这将执行它持有的方法(PrintLow或PrintHigh) 如果你有C++背景,理解委托最快的方法是把它看成一个类型安全的、面向对象的C++函数指针