委托
委托是一种可以把引用存储为函数的类型,委托的声明类似于函数,但是不带函数体,需要使用delegate关键字。委托的声明指定了一个函数签名,其中包含了一个返回类型和参数列表。在定义委托后,就可以声明该委托的变量,需要把这个变量初始化为与委托有相同签名的函数引用,之后就可以是委托调用该函数,就像该变量是一个函数一样。
对于学习C#时间不长的人来说,委托像一个门槛,但是又必须克服,因为它有着广泛的应用,因此这里仔细介绍一下委托。如果不好理解委托,可以先看如下这段代码:
看到上面的代码中分别调用加,减两种方法。使用这两种方法存在一个问题,就是可扩展性差,有没有一种方法能够方便我们调用这两个函数呢?这时候我们就想到了委托。首先,委托的签名应该与函数相同,简单地说,他们应该有相同的返回值和相同类型的参数。我们来看下面的代码:
从上面的代码中可以看到,使用委托的意义在于定义一种方法的约定,在委托被实例化后可以讲方法作为参数传递,不需要再创建类的实例之后在调用代码,使得程序的可扩展性提高了。