public void Main() { //这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票” BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket); myDelegate += MrZhang.BuyMovieTicket; //这时候委托被附上了具体的方法 myDelegate(); }
public static void Main(string[] args) { // 这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票” BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket); myDelegate += MrZhang.BuyMovieTicket; // 这时候委托被附上了具体的方法 myDelegate(); Console.ReadKey(); }
public static void Main(string[] args) { // 这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票” BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket); //用事件连接 ,一个被触发后另一个也随之运行 myDelegate += MrMing.response; //myDelegate += MrZhang.BuyTicket; // 这时候委托被附上了具体的方法 myDelegate(); Console.ReadKey(); }
//上面是委托的声明方法 //static SumDelegate sumd = new SumDelegate(Test.Sum);//也可以放在这,也可以放在下面 static void Main(string[] args) { //这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票”这时候委托被附上了具体的方法 //注意,声明委托可以不使用delegate关键字 BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket); //上面的语句声明一个委托并且订阅了小张买票,当使用委托时,小张买票函数就会执行 myDelegate += MrZhang.BuyMovieTicket; //多播委托 myDelegate(); //使用委托,括号内可以加参数,如果委托有返回值,这可以定义一个变量存放这个委托的返回值 Console.WriteLine(); myDelegate -= MrZhang.BuyMovieTicket; myDelegate(); Console.WriteLine(); myDelegate += () => { Console.WriteLine("匿名方法:3.0规范lambda表达式!突然出现一个人去买票!");//lambda表达式 }; myDelegate(); Console.WriteLine(); myDelegate += delegate() { Console.WriteLine("匿名方法:2.0版本的规范匿名方法实现!黄牛把票都买光了!");//lambda表达式 }; myDelegate(); //////////以下是简版委托 Console.WriteLine("简版委托"); SumDelegate sumd = new SumDelegate(Test.Sum);//也可以放在这,也可以放在上面面 int sumnum = sumd(5, 6); Console.WriteLine(); sumd += Test.Sum; sumd(5, 6); Console.WriteLine(); sumd += Test.Sub; sumd(5, 6); Console.WriteLine("sumnum=" + sumnum); Console.ReadKey(); }