委托
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
public delegate void languageDelegate(string name);
class Program
{
static void Main(string[] args)
{
languageDelegate delegate1, delegate2, delegate3,delegateAll;
delegate1 = ChineseLanguage;
delegate2 = EnglishLanguage;
delegate3 = ThailandLanguage;
delegateAll = ChineseLanguage;//可以将多个方法赋给同一个委托,或者叫将多个方法绑定到同一个委托,当调用这个委托的时候,将依次调用其所绑定的方法
delegateAll += EnglishLanguage;//可以将多个方法赋给同一个委托,或者叫将多个方法绑定到同一个委托,当调用这个委托的时候,将依次调用其所绑定的方法
delegateAll += ThailandLanguage;//可以将多个方法赋给同一个委托,或者叫将多个方法绑定到同一个委托,当调用这个委托的时候,将依次调用其所绑定的方法
Greet("中国人", delegate1);
Greet("英国人", delegate2);
Greet("泰国人\r\n", delegate3);
Greet("各位", delegateAll); Console.WriteLine();
Greet("张三", ChineseLanguage);
Greet("michle", EnglishLanguage);
Greet("llgmn", ThailandLanguage);
Console.ReadLine();
}
private static void ChineseLanguage(string name)
{
Console.WriteLine("你好,{0}",name);
}
private static void EnglishLanguage(string name)
{
Console.WriteLine("yoo,{0}",name);
}
private static void ThailandLanguage(string name)
{
Console.WriteLine("sawadika,{0}",name);
}
private static void Greet(string name,languageDelegate languageType)
{
languageType(name);
}
}
}
输出: