假设我想准备一些List<Action> listOfMethods
或者更好List<Func> listOfMethods
及其参数
稍后执行使用:
foreach (var action in listOfMethods)
{
action.Invoke();
}
以下添加方法的方法导致立即执行,我不想要:
listOfMethods.Add(() => processor.DoStuff(m1Parameters));
有没有办法在不导致立即执行的情况下添加方法及其参数?
答案 0 :(得分:2)
当你创建一个像() => processor.DoStuff(m1Parameters)
这样的lambda表达式时,lambda的主体就不会被执行了。
当你写下这一行时:
listOfMethods.Add(() => processor.DoStuff(m1Parameters));
方法DoStuff
它没有被执行,但是在这个块之后,可能会有一些东西触发了lambda表达式。
喜欢你的块
foreach (var action in listOfMethods)
{
action.Invoke();
}
可能在这个街区,行动正在被解雇。