smo*_*nes 3 linq resharper nullreferenceexception
我正在使用ReSharper Ultimate 2016.2,但在以前的版本中也已经看到了。当我在after之后使用ReSharper时,我会警告我说可能为'System.NullReferenceException'。下面的例子:FirstOrDefault
Any
Foo[] items = GetItems();
var myName = "MyName";
if (items.Any(x => x.Name == myName))
{
var item = items.FirstOrDefault(x => x.Name == myName);
var name = item.Name; // Possible 'System.NullReferenceException'
}
Run Code Online (Sandbox Code Playgroud)
警告是正确的还是上面的代码安全?
我知道我可以禁用警告,但这不是重点。我想确保没有任何机会NullReferenceException
发生。自从我先检查Any
,然后FirstOrDefault
应该返回一个项目。还是我错过了什么?
上面的代码只是一个MCVE。
更新:
如评论中所述,可以对代码进行优化(和简化)。问题不在于如何解决代码中的问题。但是NullReferenceException
,如ReSharper 所述,实际上是否可能会发生?