You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Resharper提示可能引发System.InvalidOperationException的原因咨询

Resharper提示“Possible System.InvalidOperationException”的原因分析

嘿,我来帮你拆解下这段代码里的问题,Resharper的提示主要来自潜在的空值访问风险:

先看你的代码:

Assert.Null(actual.Items?.FirstOrDefault(x => x.Date.Value.Year == 2019).Growth);

Resharper触发这个提示的核心原因是**x.Date.Value存在无效访问的可能性**:

  • 假设Date是Nullable<DateTime>(也就是DateTime?)类型,当你在lambda表达式里直接访问x.Date.Value时,如果某个元素的Date没有值(也就是x.Date.HasValue为false),此时访问Value属性就会抛出System.InvalidOperationException。Resharper能通过静态分析检测到这种潜在的运行时异常场景,所以给你发出了提示。

另外还有个附带风险:如果FirstOrDefault返回null(也就是没有找到符合条件的元素),后续直接访问.Growth会触发NullReferenceException,不过这次Resharper的提示聚焦在前一个异常风险上。

修正建议

你可以先在lambda里检查Date是否有值,再访问Value,同时给.Growth加上空安全访问符,这样既能消除Resharper的提示,也能避免两种潜在异常:

Assert.Null(actual.Items?.FirstOrDefault(x => x.Date.HasValue && x.Date.Value.Year == 2019)?.Growth);

内容的提问来源于stack exchange,提问作者Ekta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 14:37:31