Delegate是.net framework 2.0引入的一种数据结构,通过它引用静态方法或类的实例以及类的实例方法。(我的理解就是个函数指针,但是是类型安全的,不能隐式转换)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TestDelegate
{
class Program
{
//定义委托函数
public delegate int plusDele(int a,int b);
static void Main(string[] args)
{
plusDele pD = new plusDele(plus);
Console.WriteLine(pD(3, 4));
}
//被委托函数
public static int plus(int a, int b)
{
return a + b;
}
}
}
当然上面这个例子过于简单,实际应用场景也不会写这么没用的代码。当遇到下面这些情况就需要使用委托了。
1,事件(Event)
2,多线程(Thread)
3,回调函数(Callback)
4,异步(IAsyncResult)
5,并行计算(Parallel)