委托又称代理
委托的多点委托:意思就是一个用delegate 定义的委托关键字修饰的函数,然后把其它
函数的参数个数/类型和返回值,和你声明的委托的返回值和参数个数/类型相同添加到当前的委托列表中,那么这个委托就可以实现你所定义的方法
(只是声明,没有实现;用一种方法去实现不同的操作,类似函数指针去指向不同的函数地址)
class test {
public test()
{
}
public int Write(string message) {
Console.WriteLine("{0}这是使用 method", message);//使用名称方法指定 return 1;
}
}
class Program {
//delegate 关键字 委托
//函数的参数个数/类型和返回值,和你声明的委托的返回值和参数个数/类型相同的时候,那么这个委托就可以实现你所定义的方法
delegate int MyDelegate(string message);
static void Main(string[] args) {
test ts = new test();//实现多点委托
MyDelegate mydelegate = ts.Write;//把方法加到委托列表 执行顺序按照添加到委托的顺序执行函数
mydelegate += Writde;
//+= 或者 -= 表示添加或去掉一个函数
Mydelegate+=delegate (string m) {
Console.WriteLine("{0}这是使用 delegate", m);
return 3;
};
mydelegate += (string m) =>
{
Console.WriteLine("{0}这是使用 lambda", m);
return 4;
};
//mydelegate += m => { Console.WriteLine("{0}thisiis Lambda", m);
};
mydelegate("C#");
Thread.Sleep(Timeout.Infinite);
}
delegate void voidMyDelegate(int y);//简单的委托类定义//声明 static int Writde(string message) {
Console.WriteLine("{0}这是使用 自定义", message);//使用名称方法指定 return 2;
}
}