gpt4 book ai didi

c# - 请指导我获取以下行 c# lambda 表达式代码

转载 作者:行者123 更新时间:2023-11-30 13:50:41 27 4
gpt4 key购买 nike

<%= MyClass.GetData(() => new[] { Html.TextBox(prefix + "Postcode", Customer.ZipCode, new { maxlength = 7 }), Html.ValidationIcon(prefix + "ZipCode") })%>

谁能解释一下 MyClass.GetData 方法作为参数传递的是什么?

我不希望得到完整的解释,我知道我应该进一步学习匿名方法和 lamda 表达式......但是现在你能解释一下代码来自 "() =>..... .."是什么意思?

如果您知道一些有助于理解此类 Material 的好文章,那就太好了!

最佳答案

The () => new [] { ... } 是一个 lambda 表达式,它是匿名委托(delegate)的简写语法。这意味着您传递的本质上相当于一个指向不带参数的函数的指针,() 部分指示参数,并在 {} 大括号(Html.TextBox ....等)中返回结果。

从本质上讲,这相当于传递一个方法名来完成同样的事情,但它的语法更简洁:

MyClass.GetData(() => new[] { Html.TextBox(prefix + "Postcode", Customer.ZipCode, new { maxlength = 7 }), Html.ValidationIcon(prefix + "ZipCode") }

大致上与创建一个方法,然后传入该方法名称相同。

private WebControl[] GetControls()
{
return new[] { Html.TextBox(prefix + "Postcode", Customer.ZipCode, new { maxlength = 7 }), Html.ValidationIcon(prefix + "ZipCode");
}

....

MyClass.GetData(GetControls);

附注这是一个很好的基本 lambda 教程:http://blogs.msdn.com/b/ericwhite/archive/2006/10/03/lambda-expressions.aspx

关于c# - 请指导我获取以下行 c# lambda 表达式代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5745639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com