为什么我不能在MVC中使用带有TempData属性的coalesce

时间:2014-08-26 21:02:33

标签: c# asp.net-mvc

在以下代码中,invoices将始终为null。如果TempData包含信息,则无关紧要。

var invoices = TempData["invoices"] as List<Invoice> ?? new List<Invoice>();

相反,必须完成以下操作:

var invoices = TempData["invoices"] as List<Invoice>;
invoices = invoices ?? new List<Invoice>();

任何人都可以解释原因吗?我喜欢??运算符,我想知道它是安全的。

编辑:我上面给出了一组简单的代码来说明我的问题。这是因为它比我的静态变量和类更清晰,对任何其他人都没有意义。因为我得到了亲密的选票,显然我看到的是不可能的,我发布了截图。在镜头中,您可以看到由于合并,变量作业永远不会为空。但是在带有断点的代码行命中之后,它实际上是空的。此外,在下面的手表中,您可以看到TempData对象不为null,因此不需要合并。

enter image description here

0 个答案:

没有答案