C#委托

什么是委托?

        emm... 先理解一下字面含义。。。

   委托(Delegate) 是一种存储函数引用的类型。

   委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。

        emm... 把方法作为参数代入另一个方法中。。。

定义委托:

  委托的定义类似于方法,但不带结构体,必须要有Delegate关键字。

       委托的声明指定了一个返回类型和一个参数列表。

/// <summary>
/// 委托老王帮我办点事
/// </summary>
/// <returns></returns>
public delegate void TakeSomethingDelegate();
// 帮我打包一份吃的
public static void TakeOutFood() => Console.WriteLine("老王帮我打包了一份吃的!");
// 帮我带一包烟
public static void TakeSmoke() => Console.WriteLine("老王帮我带了一包烟!");

  

var oldWangDelegate = new TakeSomethingDelegate(TakeOutFood);
oldWangDelegate += TakeSmoke;
oldWangDelegate();
// 老王帮我打包了一份吃的!
// 老王帮我带了一包烟!

使用委托的方法的返回类型和参数要与委托的定义时的返回类型与参数一致!

上一篇:Spring源码解析(三):Bean的解析与注册


下一篇:JDK、CGLIB、Javassist和ASM的动态代理使用对比