zoukankan      html  css  js  c++  java
  • C#中通过Lambda表达式为委托传入更多的参数

    如:

      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)
      {

        ....

      }

  • 相关阅读:
    Java实战项目收集
    Drebin数据集
    网络“法官”
    沉醉
    孔方兄
    《Qt 5.9 C++开发指南》例程源码
    《论语》中那些耳熟能详的词汇
    破祟
    Qt使用UI编辑器添加的控件Icon运行时不显示
    Ubuntu格式化SD卡
  • 原文地址:https://www.cnblogs.com/tommy-huang/p/5727016.html
Copyright © 2011-2022 走看看