gpt4 book ai didi

asp.net - IEnumerable 不为空但调用 Count() 导致异常

转载 作者:行者123 更新时间:2023-12-04 03:16:12 24 4
gpt4 key购买 nike

我的代码在我的开发机器上运行良好,但是当部署到服务器时会抛出空引用异常。所以,我无法单步执行代码,但我已经确定了罪魁祸首。但现在我很困惑。这是代码。问题如下。

Dim certs = From p In persons _
Select New Certificate( _
p.Value, _
New CertificateData.Seminar(thisEvent.Seminar.Name, _
thisEvent.StartDate.Value, _
thisEvent.EndDate.Value, _
thisEvent.Venue.City, _
thisEvent.Venue.State, _
New CertificateData.Instructor( _
staffMember.Name, _
staffMember.Titles, _
instrSignatPath))) _
With {.CertificateId = p.Key}

lblMessage.Text = CStr(certs Is Nothing)
lblMessage.Text = lblMessage.Text + "<br />" + CStr(certs.Count())

上面代码中persons是自定义类的字典,certs是IEnumerable类型。现在是困境。设置标签的第一行返回 False,因此 certs 不为空。但是第二行抛出空引用异常。这怎么可能?

最佳答案

我的猜测是因为 LINQ 的延迟执行。仅当您调用 Count() 时才会枚举这些项目如果您在表达式中的代码失败,您将在那里获得异常。

我很确定至少有一个 staffMember , thisEvent , thisEvent.SeminarthisEvent.Venue为空。

关于asp.net - IEnumerable 不为空但调用 Count() 导致异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2960697/

24 4 0