gpt4 book ai didi

oracle - 不正确的 Resharper 建议 - "Merge Conditional Expression"

转载 作者:行者123 更新时间:2023-12-04 20:39:20 24 4
gpt4 key购买 nike

给定一个返回单个字符串值的 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 然后首先建议我“转换为返回语句”,它只是将它改回使用三元运算符。

有什么建议?

最佳答案

这看起来正是 RSRP-434610 中确定的错误:

  • 给定原始代码,检查对象引用是否为空,如果对象引用不为空,则访问对象的属性
  • R# 提出了始终访问属性的重构,因此在对象引用为空时会失败

  • 该问题有一个 9.1 的修复版本,它是几天前发布的,尽管 watch out trying to upgrade from within VS .

    关于oracle - 不正确的 Resharper 建议 - "Merge Conditional Expression",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29613023/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com