委托的意思跟它的本意是一样的,就是我不直接处理一件事情,我委托别人帮我处理。
在委托别人帮忙时,我们需要做以下的几件事情。
首先,这件事我自己做不了,我开始决定委托别人做了,做出委托决定,就是委托中的委托定义。委托的定义采用Delegate关键字定义。
例如:Delegate String Sayname(string name);
这就定义了一个委托。它的语法跟方法的定义类似,但是没有方法体,而且前面要加一个Delegate关键字。就是好比我要委托别人帮我做事,我不用要求别人怎么做,怎么做我不管,我委托你就好了,怎么做事你的事情。
实际上定义委托就是定义一个新类。
做出委托决定之后该觉得我委托谁去做了,这个过程就是委托的声明,我们知道,定义委托就是定义了一个类,委托的声明也就是声明对象,所以声明为:Sayname sayname;
我们可以看到,其实就是声明了一个对象。
我们确定了委托谁去做事情之后,就该确定怎么去做了,通过委托的定义我们可以看到,我要的结果是String,就是你完成我的委托后就要返回给我String,所以做事的方法定义就是:Public String Say(String name);
确定了方法后就是要求被委托的人按照指定的方法去做事情了,这个过程就是委托的实例化;实现如下:
sayname=new Sayname(new 做事方法);
整个过程的实例如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delegates
{
delegate string Sayname(string name);
class Program
{
static void Main(string[] args)
{
Sayname sayname = new Sayname(new Program().say);
Console.WriteLine(sayname("xiaoming"));
Console.ReadKey();
}
public string say(string name)
{
return name;
}
}
}