joh*_*nny 4 model-view-controller lambda nerddinner
在Microsoft的MVC教程NerdDinners的代码中:
公共类DinnerRepository {
Run Code Online (Sandbox Code Playgroud)private NerdDinnerDataContext db = new NerdDinnerDataContext(); // // Query Methods public IQueryable<Dinner> FindAllDinners() { return db.Dinners; } public IQueryable<Dinner> FindUpcomingDinners() { return from dinner in db.Dinners where dinner.EventDate > DateTime.Now orderby dinner.EventDate select dinner; } public Dinner GetDinner(int id) { return db.Dinners.SingleOrDefault(d => d.DinnerID == id); } // // Insert/Delete Methods public void Add(Dinner dinner) { db.Dinners.InsertOnSubmit(dinner); } public void Delete(Dinner dinner) { db.RSVPs.DeleteAllOnSubmit(dinner.RSVPs); db.Dinners.DeleteOnSubmit(dinner); } // // Persistence public void Save() { db.SubmitChanges(); }}
什么:
Run Code Online (Sandbox Code Playgroud)public Dinner GetDinner(int id) { return db.Dinners.SingleOrDefault(d => d.DinnerID == id); }
"d"是什么意思?这段代码是如何工作的?我知道它带来了来自功能参数的Dinnerid匹配id的晚餐.我不明白"d去......"的意思.我知道这是一个lambda,但我真的不明白.什么是"d"?它有什么作用?
这可能是在没有lambda的情况下编写的(如何)?
您应该阅读匿名方法.
基本上你引用的代码可以写成匿名方法,没有lamba语法,如下所示:
public Dinner GetDinner(int id) {
return db.Dinners.SingleOrDefault(delegate (Dinner d) {
return d.DinnerID == id;
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1626 次 |
| 最近记录: |