gpt4 book ai didi

c# - 检查和评估有什么区别?

转载 作者:行者123 更新时间:2023-11-30 14:22:08 25 4
gpt4 key购买 nike

我正在浏览 Razor Microsoft Docs 上的教程,遇到了 HTML 帮助程序中使用的 lambda 表达式:

@Html.DisplayNameFor(model => model.Movie[0].Title))

Movie 是 IList< Movie > 类型,其中 Movie 是教程中创建的类。作者声明:

DisplayNameFor HTML 帮助程序检查 lambda 表达式中引用的Title 属性以确定显示名称。lambda 表达式是检查而不是评估。这意味着当 Movie[0] 为 null 或空时没有访问冲突。”

我理解直觉检查,但这与说有何不同:

Console.WriteLine(Movie[0].Title)

如果 HTML 帮助程序看到一个空列表,则没有问题,但如果控制台方法看到一个空列表,则会抛出异常。

我能猜到这是如何工作的唯一方法是在幕后有一个 try/catch 在工作。

最佳答案

显示名称是指属性本身的名称,即"Title",或者是Display 属性中定义的字符串值属性,如果属性有一个,即:

public class Movie
{
[Display(Name = "Movie Title")]
public string Title { get; set; }
}

我们可以看到它不关心 Title 属性的,所以它永远不需要评估它,因此它不会如果 movie 为 null,则 t 抛出。

关于c# - 检查和评估有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51604735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com