使用反向可空的比较条件是否有任何疑问,以避免额外的分支为null?
使用以下C#代码:
public static decimal? Max(IEnumerable<decimal> values)
{
decimal? maxValue = null;
foreach (decimal currentValue in values)
{
if (!(maxValue >= currentValue))
{
maxValue = currentValue;
}
}
return maxValue;
}
我收到关于条件总是虚假和启发式无法访问的代码的警告:
代码按预期工作:
//returns 11
Console.WriteLine(Max(new[] {5m, 0m, 11m, 2m}));
//returns null
Console.WriteLine(Max(new decimal[] {}));
这是一个已知的ReSharper错误吗?