在c#中嵌套lambda表达式是错误的做法

本文关键字:错误 表达式 嵌套 lambda | 更新日期: 2023-09-27 18:27:56

我经常使用windows phone,我注意到当你使用多个以不同速度返回并且都是异步的系统时,这有时是一个挑战。

我想出的处理这个问题的方法之一(效果惊人)是嵌套lambdas。它控制出口的流程,防止比赛事件,同时也不锁定用户界面。我的问题是,我只是一起度过了这段时间,没有做太多研究。

嵌套多个Lambda是不是不好的做法?负面影响是什么?

假设以下

它不是真正的代码,我淡化了它,这样它就可以很容易地理解,放松

Query.AsyncExicute();
CheckQueryCompletedBagTimer.Tick += (sender1,arg1) =>{
    
      if(bag.count<=0)
          return;
      else{
         MakeAnotherQuery.Exicute();
         CheckQueryCompletedBagTimer2.Tick += (sender2,arg2) =>{
            //Do some more code
          };
      }
};
CheckQueryCompletedBagTimer.Start();

在c#中嵌套lambda表达式是错误的做法

我想说,如果嵌套lambda不会影响性能,那么使用它们应该没有问题。

但是,如果有一种更直接的方法可以在不嵌套的情况下获得相同的结果,请使用它,因为嵌套lambda会影响代码的理解和维护。

嵌套lambda表达式上方的//comment清楚地解释了您正在做的事情,这是(对我来说)