您的位置:首页 > 编程语言 > C#

C# Lambda表达式--记一次教训

2019-04-11 13:44 633 查看

我知道Lambda和deleget很像,之前虽然也偶尔写lambda表达式,但也并不是很在意。今天做了遇到的一个情况发现labmbda的方便之处。

关于Lambda网上有很多讲解,不过看明白,不代表就能想起用(主要是一直不太喜欢,加上之前项目上不让写lambda)

起因是这样子:

[code]void SetAllChildImage()
{
for (int i = 0; i < Heros.Count; i++)
{
var heroIcon = Heros[i].GetComponent<Image>();
//虽然在资源在异步加载,但是lamdba会把用到变量保存起来,存储在方法栈上直到调用。
//如果此时不用lambda,虽然也可以处理,但是回麻烦很多。
GetSprit(spriteName , (sprite) => {
heroIcon.sprite = sprite;
});
}
}

//这个方法主要是获取图集中的图片,不过此方法为异步的。即图集加载完成后,需要回调把图片传回来。
void GetSprit(string spriteName,Action<Sprite> callback )
{
...
}

虽然被人教训了,但是有了教训就要记录下来,这样之后才(教)能(训)成(别)长(人)。

在获得临时变量并且需要做操作的时候,lambda真心蛮好用呢。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: