【发布时间】:2010-09-26 06:05:15
【问题描述】:
我不断看到这样的检查代码
if (IsGood == false)
{
DoSomething();
}
或者这个
if (IsGood == true)
{
DoSomething();
}
我讨厌这种语法,总是使用以下语法。
if (IsGood)
{
DoSomething();
}
或
if (!IsGood)
{
DoSomething();
}
有什么理由使用“== true”或“== false”吗?
这是一个可读性的东西吗?人们只是不理解布尔变量吗?
另外,两者在性能上有区别吗?
【问题讨论】:
-
如果这真的让你如此烦恼,那对你来说将是漫长而艰难的生活。
-
这是一个公平的问题,OP 对我来说似乎并不太生气。
-
是的,它是有效的。我不时用简单的事情怀疑自己,偶尔会找到一个很好的理由来改变我的方式......
-
克里斯,这不是分支结构的问题。 C 是类型化的,但它没有布尔类型。 “if(good)”不同于“if(good == TRUE)”。第一个意味着好是非零的。第二个意思是good正好等于TRUE,这是一个特定的整数值。有关更多信息,请参阅 MikeB 的答案。
-
在我看来主要问题是它让开发人员看起来好像他们并不真正理解布尔值
标签: language-agnostic boolean not-operator