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

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

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

起因是这样子:

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真心蛮好用呢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值