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

    ....

  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM