delegate的用法

2022-11-27 投稿:赖俊军 分享

delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。

与其它的类不同,delegate类能够拥有一个签名(signature),并且它只能持有与它的签名相匹配的方法的引用。

上面的定义解释了一个delegate的声明定义了一个reference type, 而这个reference type是用来将一个方法利用一个指定的形式压缩起来。一个delegate的实例压缩一个静态或者一个实例方法。Delegates和C 中的功能指针很相似。然而,不同的是,delegate是安全的,并且是Type-safe。

C#中的委托

1. 委托类似与 C或C 中的函数指针,但委托是 面向对象的,并且是类型安全的

2. 委托 就相对与 一类方法 (即方法类,或者方法接口)

而这一类方法都具有相同的 修饰符、形参以及 返回值类型

委托,既是方法:

声明委托的方式如下:在修饰符后加上 delegate ['dɛlɪɡət]关键字

从格式上看,它与方法的声明极为相似,就是多了个 delegate关键字而已

表示声明了一类,修饰符为public、一个string类型形参的、没有返回值的方法

但委托不是普通的方法,因为它也是类,

所以委托只能声明,而不能定义,如不能这样写:

实例化委托,调用委托: