次の短いコードスニペットでラムダ式を正しく使用すると、私は疑問に思っていましたか?私は関数呼び出しを時間の経過とともに保存し、それらをすべてまとめてUpdate_Calls()に実行したいと思います。最も重要なのは、パラメータvar1-3が、いずれの場合でもExtern_Func()を呼び出したときの値を保持するかどうかを尋ねていますか?ラムダ式のパラメータをC#で正しく使用する方法は?
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