日期:2014-05-17  浏览次数:20381 次

mvc中的lamdba表达式
现在在学mvc看到Html.TextBoxFor(model => model.Title)这个lamdba表达式不是很理解!程序是怎么知道model是什么的

------解决方案--------------------
model是强类型视图定义的(在页面最上面有定义),并且使用Controller传入的。

model => model.Title

这是一个委托,由TextBoxFor函数调用,它给你一个Model参数,你返回Model中用于产生TextBox的字段
------解决方案--------------------
TakeWhile内部实现如下:(部分实现为了让你理解,使用了简化和变形)

C# code
List<int> TakeWhile(List<int> data, Func<int, int, bool> f)
{
    List<int> result = new List<int>();
    int index = 0;
    bool isTake = false;
    foreach (int i in data)
    {
        if (!isTake && f(i, index)) isTake = true;
        if (isTake) result.Add(i);
    }
    return result;
}