委托就是“用来存放方法的变量”。
平时我们定义变量,一般都是存放数据,比如 "int" 存数字,"string" 存文字。但是委托比较特殊,它存的不是数据,而是一个方法。也就是说,我们可以把一个方法赋值给委托,然后通过委托去调用这个方法。
举个简单例子,比如我们有一个计算方法:
public int Add(int a, int b)
{
return a + b;
}
如果使用普通方式调用,就是直接写 "Add(1,2)"。但是如果使用委托,我们可以先定义一个委托类型,然后让它指向这个方法。
public delegate int Calculate(int x, int y);
然后:
Calculate c = Add;
int result = c(1,2);
这样调用的效果和直接调用方法是一样的。
其实委托最大的作用就是让程序更加灵活。
比如在开发软件时,有时候我们不知道以后需要执行哪个方法,可以先定义一个委托,等程序运行的时候,再决定让它执行哪个方法。这样代码的扩展性会更强。
委托在实际开发中非常常见,比如事件(Event)就是建立在委托基础上的。我们平时在 WinForms 里面点击按钮,双击控件产生事件,本质上就是通过委托通知程序:“有人触发这个操作了,请执行对应的方法”。
另外,C# 还提供了一些内置委托,比如 "Action"、"Func"。它们可以减少我们自己定义委托的代码。
如:
Action<string> action = name =>
{
Console.WriteLine(name);
};
这里的 "Action" 就代表一个没有返回值的方法。
简单理解,委托就像一个“方法遥控器”。它自己不干活,但是可以保存方法,然后在需要的时候调用对应的方法。
网硕互联帮助中心


评论前必须登录!
注册