什么是委托
可以认为委托是持有一个或多个方法的对象。
下面我们讲提供创建和使用委托的语法和语义。在后面你将看到如何使用委托将可执行的代码从一个方法传递到另一个,以及为什么这样做是非常有用的。
我们将从下面的示例代码开始。如果此时你有些东西弄不明白,不必担心,我会在本章剩余内容中介绍委托的细节。
- 代码开始部分声明了一个委托类型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或PrintHight)。
delegate void MyDel(int valu