委托是一种定义方法签名的类型。 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联。 您可以通过委托实例调用方法。-msdn
委托就是对方法的抽象,而事件是对委托的封装。
委托的使用
项目经理,把任务分配给程序员,其实就是任务“委托”给了程序员。
做任务代码:
public class DoWork
{
public static void WirteFile()
{
Console.WriteLine("程序员写文档");
}
public static void Coding()
{
Console.WriteLine("程序员编写代码");
}
public static void Collect()
{
Console.WriteLine("程序员收集需求");
}
}
声明委托:
注,委托必须和需要签名的方法具有同样的返回值,同样的参数。
//声明委托,与签名方法拥有同样的返回值和参数
public delegate void DoSomething();
客户端调用代码:
class Program
{
static void Main(string[] args)
{
DoSomething d = DoWork.Collect;
d();
Console.ReadKey();
}
}
输出结果
总结:
1.委托类似于 C++ 函数指针,但它们是类型安全的
2.委托和接口都允许类设计器分离类型声明和实现
接口是对一组方法进行的封装,接口拥有属性,接口实现的方法可以连接到类的方法或者类型时,接口是面向对象的。
3.一个委托可以注册多个方法
4.委托定义要求和方法的返回值和参数的类型一致