Resharper抛出可能的“ System.InvalidOperationException”

问题描述

我写了下面的代码,但是投掷器正在抛出

可能的'system.invalidOperationException'

可能是什么原因?

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

解决方法

FirstOrDefault调用可能返回null,并且在访问Growth属性时会出现异常,请尝试再次使用空条件运算符?.,例如{{ 1}}。它可以避免FirstOrDefault(x => x.Date.Value.Year == 2019)?.Growth

对于NullReferenceExceptionInvalidOperationException似乎具有x.Date类型,您应该在获得Nullable<DateTime>之前使用HasValue属性,例如{{1} }。或GetValueOrDefault()方法Value。甚至是简化的x => x.Date.HasValue && x.Date.Value.Year == 2019运算符x => x.Date.GetValueOrDefault().Year == 2019

,

我想你应该检查

actual.Items?.FirstOrDefault(x => x.Date.Value.Year == 2019)首先为null然后选择 将其作为变量

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