6

我发现这个语句是一些旧代码,我花了一秒钟才弄清楚......

IsTestActive = (TestStateID == 1 ? true : false);

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

IsTestActive = (TestStateID == 1);

如果是,你为什么要使用第一个?哪个更具可读性?(我认为是后者,但我想看看其他人的想法。)

4

5 回答 5

32

是的,完全一样。

是的,后者更具可读性。

于 2009-01-07T14:04:39.500 回答
5
IsTestActive = (TestStateID == 1);

绝对更具可读性。

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

ACTIVE = 1

然后将布尔变量替换IsTestActive

(TestStateID == ACTIVE)

现在的代码方式,如果状态发生变化而不更新布尔值,则布尔值的状态IsTestActive将是错误的。TestStateID绕过布尔值并测试您所追求的信息的真实来源将消除此错误的可能性。

于 2009-01-07T15:11:24.360 回答
1

不,使用第一个版本没有实际理由,世界并不完美,程序员也不完美。

于 2009-01-07T14:06:09.717 回答
0

可读性取决于您在何处使用此构造。我经常发现类似的东西

(TestStateID == 1 ? true : false)

更具可读性。

于 2009-01-07T16:31:35.897 回答
0

好吧,我不知道其他语言,但在 PHP 中使用类型转换更容易:

$IsTestActive = (boolean)$TestStateId;
于 2010-06-04T09:46:53.950 回答