2

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

C# 示例:

if (!IsPostBack || 1==1)

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

4

3 回答 3

9

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

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

于 2013-07-22T18:34:34.347 回答
2

开发人员测试以下内容:

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

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

  • 测试
  • SQL注入,如你所说
于 2013-07-22T18:40:07.593 回答
1

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

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

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

相当于

//Do Something
于 2013-07-22T18:38:21.010 回答