我是靠谱客的博主 害怕电脑,最近开发中收集的这篇文章主要介绍为什么html中能写for函数,c# – 我想理解@ Html.DisplayFor(modelItem => item.FirstName)中的lambda表达式,...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

lambda表达式是一种写匿名函数的方式,即没有名称的函数。你在“箭头”的左边是功能参数,你在右边是功能体。因此,(x => x.Name)在逻辑上转换为类似于字符串Function(Data x){return x.Name}的类型字符串和数据将明显地变化并从上下文导出。

没有左侧的参数转换为没有参数的函数,所以这个(()=> someVariable)在逻辑上转换为:string Function(){return someVariable; }}

在这一点上,你可能开始怀疑,someVariable来自哪里,它不是一个函数参数,它没有在函数中定义。你会是正确的,像这样的函数永远不会编译。然而,像这样的lambda函数是完全精细的,因为它允许外部范围变量被提升和使用这种方式。 (在内部,创建一个包装类,在lambda表达式中使用的变量成为字段。)

现在让我们看看什么model => item.FirstName意味着。逻辑上它会翻译成字符串Function(Model model){return item.FirstName; }。基本上这是一个带有参数的函数,但不使用此参数。

现在,最后一位的信息。虽然lambda表达式最终代表函数,但有时它们并不是为了实际执行的目的而创建的(尽管它们可能)。 lambda表达式可以以表达式树的形式表示。这意味着,它可以解析,而不是执行它。

在这种特殊情况下,MVC引擎不运行lambda表达式表示的函数。相反,表达式被解析,以便MVC引擎知道为这个特定的行发出什么html。如果您的数据项不直接来自您的模型对象,则lambda表达式的左边部分无关紧要。

最后

以上就是害怕电脑为你收集整理的为什么html中能写for函数,c# – 我想理解@ Html.DisplayFor(modelItem => item.FirstName)中的lambda表达式,...的全部内容,希望文章能够帮你解决为什么html中能写for函数,c# – 我想理解@ Html.DisplayFor(modelItem => item.FirstName)中的lambda表达式,...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部