根据整数设置布尔值

chi*_*s42 6 c# coding-style readability

我发现这个陈述是一些旧代码,我花了一秒钟才弄明白......

IsTestActive = (TestStateID == 1 ? true : false);
Run Code Online (Sandbox Code Playgroud)

如果我错了请纠正我,但这不是这个吗?:

IsTestActive = (TestStateID == 1);
Run Code Online (Sandbox Code Playgroud)

如果是的话,你为什么要使用第一个呢?哪一个更具可读性?(我想是后者,但我想看看别人怎么想.)

j_r*_*ker 32

是的,它完全一样.

是的,后者更具可读性.

  • 我只看到过两种人使用的前者:那些对布尔逻辑缺乏基本理解的人,或者那些认为三元运算符非常酷的人. (2认同)

Bil*_*ard 5

IsTestActive = (TestStateID == 1);
Run Code Online (Sandbox Code Playgroud)

绝对更具可读性.

可以为定义常量做一个案例

ACTIVE = 1
Run Code Online (Sandbox Code Playgroud)

然后更换布尔变量IsTestActive

(TestStateID == ACTIVE)
Run Code Online (Sandbox Code Playgroud)

代码现在的方式,IsTestActive如果TestStateID更改状态没有更新布尔值,布尔值的状态将是错误的.绕过布尔值并测试您所追踪的信息的真实来源将消除此错误的可能性.