我想知道,如果我在下面的短代码片段中正确使用Lambda表达式?我想随时间存储函数调用,然后在Update_Calls()中一起执行它们。最重要的,我是问参数var1-3是否保留他们的价值在任何情况下(调用Extern_Func()当他们的价值)?如何在C#中正确使用lambda表达式的参数?
static List<Action> callsForUpdate = new List<Action>();
public static void Extern_Func(int var1, int var2, float var3)
{
Action callToStore =() => Func(var1, var2, var3);
// Remember in call list
callsForUpdate.Add(callToStore);
}
public static void Update_Calls()
{
for (int i = 0; i < callsForUpdate.Count; i++)
{
callsForUpdate.ElementAt(i);
}
callsForUpdate.Clear();
}
非常感谢您指出这个问题!有趣的是,编译器不抱怨... –
@ares_games为什么它应该抱怨? – InBetween