2020-02-18 更新
实现一个delegate是很简单的,通过以下3个步骤即可实现一个delegate:
1. 声明一个delegate对象,它应当与你想要传递的方法具有相同的参数和返回值类型。
2. 创建delegate对象,并"将你想要传递的函数作为参数传入"。
3. 在要实现异步调用的地方,通过上一步创建的对象来调用方法。
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递
实现一个delegate是很简单的,通过以下3个步骤即可实现一个delegate:
1. 声明一个delegate对象,它应当与你想要传递的方法具有相同的参数和返回值类型。
2. 创建delegate对象,并"将你想要传递的函数作为参数传入"。
3. 在要实现异步调用的地方,通过上一步创建的对象来调用方法。
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递
using System; public class MyDelegateTest { // 步骤1,声明delegate对象 public delegate void MyDelegate(string name); // 这是我们欲传递的方法,它与MyDelegate具有相同的参数和返回值类型 public static void MyDelegateFunc(string name) { Console.WriteLine("Hello, ", name); } public static void Main() {//转载请保留 http://www.luofenming.com/show.aspx?id=ART2017052400002 // 步骤2,创建delegate对象(实例) MyDelegate md = new MyDelegate(MyDelegateTest.MyDelegateFunc); // 步骤3,调用delegate md("sam1111"); //2020-02-18 更新 现在一般都用.net 框架内置的 Action<T>不带返回值 Func<T,T>带返回值 最后一个参数类型就是返回值的类型 //像上面 步骤2 可以这样写 MyDelegate md =MyDelegateTest.MyDelegateFunc; //如果用.net 框架内置的 可以这样写 Action<string> action=MyDelegateTest.MyDelegateFunc; } }
输出结果是:Hello, sam1111