C# delegate委托详解实例

2020-02-18 更新
实现一个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