【问题标题】:What are the practical uses of inserting "1==1" (1 is equal to 1) in conditional statements?在条件语句中插入“1==1”(1 等于 1)有什么实际用途?
【发布时间】:2013-07-22 18:33:09
【问题描述】:

有时在 JavaScript 或 C# 代码中我会看到“1==1”条件语句。

C# 示例:

if (!IsPostBack || 1==1)

我知道在 Sql 语句中,可以使用 1=1 when dynamically building queries 或在创建 sql 注入攻击时,但我不了解在 C# 或 JavaScript 中始终评估为 true 的测试的实际用法。

【问题讨论】:

  • @dystroy:你能详细说明一下吗?如果没有它,显示的代码将如何成为错误?我从来没有见过像你描述的那样的用法。
  • 有时人们在调试时会使用类似的简单数学检查来快速强制代码块运行或阻止其运行 (1==0),而无需更改语句中的任何其他内容。将它永久留在那里会很草率。

标签: c# javascript conditional-operator


【解决方案1】:

没有价值。这使得条件始终为真,因此您只需删除 if

我猜它是在调试问题以强制执行此特定分支时添加的,只是忘记将其删除。我会称之为错误。

【讨论】:

  • @newStackExchangeInstance:这是什么问题?你应该问为什么它在那里。 true 本来是一样的,并且当永久留在代码中时两者都没有意义。为什么开发者选择使用1==1 而不是true 我不可能知道。
【解决方案2】:

以下开发者测试:

  • 无论“Real”参数值如何,都会执行函数/方法/子/等
  • 查看您的参数将如何受到 False || 的影响真实情况

我看到的唯一真正的实际用途是:

  • 测试
  • 如您所说,SQL 注入

【讨论】:

    【解决方案3】:

    带有1==1 条件的if 是对if 语句的滥用。尽管在语法上听起来不错,但它消除了 if 的价值,即使在那里。

    正如 Daniel 所说,它可能是在调试特定代码部分时使用的。如果它留在生产代码中,则很可能是一个错误,否则它完全滥用了if 语句。

    if ( !IsPostBack || 1==1)
    {
        // Do Something
    }
    

    等价于

    //Do Something
    

    【讨论】:

      猜你喜欢
      • 2022-07-08
      • 2013-08-17
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多