C# delegate 委托 - wittamer123/blog GitHub Wiki
定义和例子
委托: 把方法当作参数的方法(没有方法主体)
private static delegate void HelloWorldDelete(string name)
public void HelloWorld(string name, HelloWorldDelete chooseLanguage)
{
chooseLanguage(name);
}
private static void ByEnglish(string name)
{
Console.WriteLine("Hello World By" + name);
}
private static void ByChinese(string name)
{
Console.WriteLine("你好,世界!作者:" + name);
}
static void Main(string[] args)
{
HelloWorld("张三",ByChinese);
HelloWorld("ZhangThree",ByEnglish);
使用步骤
- 声明一个委托类型
delegate void MyDel(int x);
以delegate开头,没有方法主体。 - 声明委托变量
MyDel delVar;
- 创建委托对象
- 使用new
delVal = new MyDel(myClass.MyM1);
- 使用快捷语法
delVar = myClass.MyM1;
- 可以为委托对象增加其他方法 1.+= 2.-=
- 调用委托 用于调用委托的参数将会用于调用调用列表里的每一个方法 如果委托有返回值并且在调用列表中有一个以上的方法 1.调用列表中最后一个方法返回的值就是委托调用返回的值 2.其他方法的返回值会被忽略。