我正在阅读 Microsoft Docs 上的Razor教程,并遇到了 HTML 帮助程序中使用的 lambda 表达式:
@Html.DisplayNameFor(model => model.Movie[0].Title))
Movie 是 IList<Movie> 类型,其中 Movie 是教程中创建的类。作者指出:
“ DisplayNameFor HTML Helper检查lambda 表达式中引用的Title属性以确定显示名称。检查lambda 表达式而不是求值。这意味着当 Movie[0] 为 null 或为空时没有访问冲突。”
我从直觉上理解检查,但这与说有什么不同:
Console.WriteLine(Movie[0].Title)
如果 HTML 帮助程序看到一个空列表,则没有问题,但如果控制台方法看到一个空列表,则会抛出异常。
我能猜测这是如何工作的唯一方法是在幕后有一个 try / catch 在工作。
侃侃无极
郎朗坤
相关分类