不正确的Resharper建议 - “合并条件表达式”

时间:2015-04-13 19:01:02

标签: oracle resharper

给定一个返回单个字符串值的oracle查询,要从查询中获取值,我使用以下两行:

var result = cmd.ExecuteOracleScalar();
return result != null ? ((OracleString)result).Value : null;

此语句中的“!= null”以“合并条件表达式”的建议为下划线。如果我接受该建议,则将其更改为:

return ((OracleString)result).Value;

抛出异常,因为对于多次执行,返回的值将为null。

是否有使用三元运算符但没有此警告?

请注意,如果我将代码更改为:

var result = cmd.ExecuteOracleScalar();
if (result == null)
    return null;
return ((OracleString)result).Value;

Resharper然后首先建议我“转换为返回语句”,它只是将其更改回使用三元运算符。

任何建议?

1 个答案:

答案 0 :(得分:3)

这看起来就像RSRP-434610中确定的错误:

  • 给出检查对象引用是否为null的原始代码,如果对象引用不为null,则访问该对象的属性
  • R#建议重构始终访问该属性,因此当对象引用为null时将失败

该问题的修复版本为9.1,仅在几天前发布,但watch out trying to upgrade from within VS