【发布时间】:2018-07-31 02:42:50
【问题描述】:
我正在阅读 Microsoft Docs 上的 Razor 教程,并遇到了 HTML 帮助程序中使用的 lambda 表达式:
@Html.DisplayNameFor(model => model.Movie[0].Title))
Movie 是 IList
"DisplayNameFor HTML Helper 检查 lambda 表达式中引用的 Title 属性以确定显示名称。lambda 表达式是 检查而不是评估。这意味着当 Movie[0] 为 null 或为空时没有访问冲突。”
我理解直觉的检查,但这与说:
Console.WriteLine(Movie[0].Title)
如果 HTML 帮助程序看到一个空列表,则没有问题,但如果控制台方法看到一个空列表,则会引发异常。
我能猜到它是如何工作的唯一方法是在幕后有一个 try / catch 在工作。
【问题讨论】: