我有这个代码:
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/