c# - lambda 表达式函数

标签 c# lambda

我有这个代码:

int pictureId=10;
string cacheKey = string.Format(ModelCacheEventConsumer.PICTURE_URL_MODEL_KEY, pictureId);
        return _cacheManager.Get(cacheKey, () =>
        {
            var url = _pictureService.GetPictureUrl(pictureId, showDefaultPicture: false);
            //little hack here. nulls aren't cacheable so set it to ""
            if (url == null)
                url = "";

            return url;
        });

这部分代码到底是什么意思:"

() =>
{"
   var url =...."

这是否意味着为缓存中的每一行执行返回 URL 的函数?那么什么是返回类型 - 列表?

此语法文档的 URL?

最佳答案

_cacheManager.Get() 方法的第二个参数是一个匿名方法,用于捕获 pictureId 等。

https://msdn.microsoft.com/en-us/library/bb397687.aspx

C# Lambda expressions: Why should I use them?

要确定返回的类型,请尝试使用 var 关键字并创建一个局部变量:而不是 return _cacheManager.Get() 编写 var x = _cacheManager.Get() 后跟 return x。然后只需将鼠标悬停在 Visual Studio 中的关键字 var 上即可。

关于c# - lambda 表达式函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34598766/

相关文章:

c# - 如何返回邮政编码列表 ## 英里半径内的所有实例

c# - SQLite - 即时创建和更改数据库

c# - Entity Framework : Model Contain A list(navigational properties) of three items of type= itself , 给出错误。 (可能是外键映射错误)

C# MS SQL 更新语句不更新数据库

nhibernate - NHibernate 3是如何解决QueryOver<>语法的?

c# - 在表达式树中使用可空类型

c# - 隐藏 MediaPlayer 控件(Microsoft Media Platform Player Framework)

c# - 使用 lambda 表达式获取属性或类型名称

c# - Linq 查询到 Lambda 表达式

lambda - 如何在 Lambda DSL for Pact (pact-jvm-consumer) 中为命名数组和对象建模