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