【问题标题】:StyleCop - CSharp.Maintainability warning for operator precedenceStyleCop - 运算符优先级的 CSharp.Maintainability 警告
【发布时间】:2013-01-03 09:13:19
【问题描述】:

考虑以下算术计算。为了简单起见,我已尽可能缩短它们:

x = y + y * z;

x = y + z - y * z;

这在没有 StyleCop 的情况下是完全合法的,并且大概按照 BODMAS 进行计算(就像任何算术计算一样)。

当它通过 StyleCop 时,它会显示以下警告:

CSharp.Maintainability : 在算术中插入括号 声明运算符优先级的表达式。

大概,我需要做的就是在插入括号时遵循 BODMAS 的规则,如下所示:

x = y + (y * z);

x = (y + z) - (y * z);

我更正了我的假设,即 StyleCop 希望我明确定义 BODMAS 的规则,如果我想执行计算,就像没有括号一样?

【问题讨论】:

  • 这是一个 StyleCop 的“可维护性”警告,它可以阻止某人某天只需在其中一个计算中添加一个“+2”而不会弄乱整个事情,而且它使它更具可读性,你可以如果您不喜欢该规则,请始终禁用它。
  • 风格警察规则并不意味着代码分析。正如对此的解释所说:“虽然这段代码是合法的,但它的可读性或可维护性并不高。为了充分理解这段代码,开发人员必须了解并理解 C# 中的基本运算符优先规则。”这可能不适用于所有开发人员。因此,最好声明优先级

标签: c# .net math stylecop brackets


【解决方案1】:

没错。 StyleCop 基本上假设您对运算符优先级不太满意,并希望将其明确写出来。如果稍后有人在公式上工作,这可能会导致更稳定的代码。它在技术上是不需要的——但是你假设你的假设是绝对正确的,编译器将如何处理它。自然是这样(BODMAS)。

最后,这是“您可能不知道自己在做什么,所以我们确保您将其拼写出来”的情况。这不是一个坏态度 - 代码稳定性是主要问题 - 但您也可以关闭该警告。

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 2015-03-20
    • 2021-10-25
    • 2011-06-21
    • 2013-02-24
    • 2012-08-10
    • 2020-03-05
    相关资源
    最近更新 更多