(四十四)C#编程基础复习——C#委托

发布时间 2024-01-04 16:56:08作者: 代号六零一

C#中的委托(Delegate)类似于C或C++中的函数指针,是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。委托特别适用于实现事件和回调方法,所有的委托都派生自System.Delegate类。在实例化委托时,可以将委托的实例与具有相同返回值类型的方法相关联,这样就可以通过委托来调用方法。另外,使用委托还可以将方法作为参数传递给其他方法。

委托具有以下特点:

  1. 委托类似于C/C++中的函数指针,但委托时完全面向对象的。另外,C++中的指针会记住函数,而委托则是同时封装对象实例和方法;
  2. 委托允许将方法作为参数进行传递;
  3. 委托可用于定义回调方法;
  4. 委托可以链接在一起,例如可以对一个事件调用多个方法;
  5. 方法不必与委托类型完全匹配;
  6. C#2.0版引入了匿名函数的概念,可以将代码块作为参数(而不是单独定义的方法)进行传递。C#3.0引入了Lambda表达式,利用它们可以更简练地编写内联代码块。匿名方法和Lambda表达式都可编译为委托类型,这些功能现在统称为匿名函数。