给定一个返回单个字符串值的oracle查询,要从查询中获取该值,我使用以下两行:
var result = cmd.ExecuteOracleScalar();
return result != null ? ((OracleString)result).Value : null;
Run Code Online (Sandbox Code Playgroud)
该语句中的“!= null”强调了“合并条件表达式”的建议。如果我接受建议,它将更改为:
return ((OracleString)result).Value;
Run Code Online (Sandbox Code Playgroud)
这将引发异常,因为对于许多执行,返回的值将为null。
无论如何有使用三元运算符但没有此警告?
请注意,如果我将代码更改为:
var result = cmd.ExecuteOracleScalar();
if (result == null)
return null;
return ((OracleString)result).Value;
Run Code Online (Sandbox Code Playgroud)
然后,Resharper首先建议我“转换为返回语句”,只需将其更改回使用三元运算符即可。
有什么建议么?
这看起来与RSRP-434610中发现的错误完全相同:
该问题有一个修复版本 9.1,该版本于几天前发布,但要小心尝试从 VS 内升级。