在某些情况下,当我尝试调试foreach循环时,我无法在调试器中看到当前值。如果我尝试在watch中评估它,它将抛出一个null引用异常,而代码将执行没有问题。我并非100%肯定,但这似乎发生在我在使用EF Core检索的列表上进行迭代时。
var bar = await context.Bars.Include(b => b.Barlets).ToListAsync();
foreach (var foo in bar)
{
var boop = foo;
/*do stuff with foo */
}
如果我在循环中间设置断点,则foo将为null。在同一断点处,我可以毫无问题地查看bar的内容,并且没有值为null。我甚至可以在作业之后立即查看boop的内容,但不是foo。