码迷,mamicode.com
首页 > Windows程序 > 详细

C#中通过Lambda表达式为委托传入更多的参数

时间:2016-08-01 21:11:42      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

如:

  DispatcherTimer dispatcherTimer = new DispatcherTimer();

  dispatcherTimer.Tick += (o, e) => { dispatcherTimer_Tick(o, e, driverVM); };
  dispatcherTimer.Interval = new TimeSpan(0, 0, 2);
  dispatcherTimer.Start();

    上述红色代码处,dispatcherTimer.Tick接受的委托为void dispatcherTimer_Tick(object sender, EventArgs e)

这里只接受两个参数,但如果我们想再传入一个自定义类型的参数呢,可以利用Lambda表达式,再方法的外面以该委托的标准

封装多一层方法,做法如上述红色代码所示,相当于外层的匿名方法 (o, e) =>{}才是传给Tick的委托,而下面这个方法才是

我们真正想做的事情:

  private void dispatcherTimer_Tick(object sender, EventArgs e, DriverViewModel driverVM)
  {

    ....

  }

C#中通过Lambda表达式为委托传入更多的参数

标签:

原文地址:http://www.cnblogs.com/tommy-huang/p/5727016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!