() => new [] {...} является лямбда-выражением, которое является сокращенным синтаксисом для анонимного делегата.Это означает, что вы передаете по существу эквивалент указателя на функцию, которая не принимает аргументов, часть () указывает аргументы и возвращает результаты в {} фигурных скобках (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);
ps Вот хороший базовый урок по лямбде: http://blogs.msdn.com/b/ericwhite/archive/2006/10/03/lambda-expressions.aspx