我有以下电话:
GameSmart.HighScores.Load(Order.Descending, (HighScoresLoadedResponse response) => {
foreach(Score score in response.data.scores){
GameSmart.GetImage(score.avatar, (Sprite sprite) => {
print(score.score);
});
}
});
在我的foreach
中,我可以以某种方式将score
的值传递给在执行匿名函数时使用的匿名函数吗?我现在每次匿名函数执行时都会显示Score
数组中的最后一个值。
以下是GetImage
public static void GetImage(string url, Action<Sprite> onComplete = null)
答案 0 :(得分:3)
我现在无法测试,但我相信这应该有效:
GameSmart.HighScores.Load(Order.Descending, (HighScoresLoadedResponse response) => {
foreach(Score score in response.data.scores){
var scoreRef = score;
GameSmart.GetImage(score.avatar, (Sprite sprite) => {
print(scoreRef.score);
});
}
});
答案 1 :(得分:1)
您需要在5.0之前的C#版本中将得分复制到foreach循环内的局部变量。有关设计更改Is there a reason for C#'s reuse of the variable in a foreach?
的说明,请参阅此问题