我理解这是一个主观问题,所以如果需要关闭我会道歉,但我觉得它经常足以让我想知道是否一般偏好一种形式而不是另一种形式.
显然,最好的答案是"重构代码,这样你就不需要测试虚假",但有时候没有简单的方法可以这样做,而"else"分支就是继续处理.因此,当您必须具有"if not false"构造时,这是首选标准:
不是运营商
if (!value)
Run Code Online (Sandbox Code Playgroud)
或者测试是假的
if (value == false)
Run Code Online (Sandbox Code Playgroud)
KP.*_*KP. 70
if (!value)更容易/更快地遵循.主观如你所说.只要你保持一致,这就是主要的事情.
编辑
另外一点要点 - 省略true/false关键字也应该(希望)迫使编码人员使用更好的命名变量.Bool变量应始终指示含义或状态目的,例如:
if (MyWallet.IsEmpty)
没有理由与上述使用== false或== true因为它是多余的.以上是人类可读的.
比解密要好得多:
if (MyWallet.EmptyStatus == true) 或者像这样荒谬的东西.
Cha*_*ana 29
我个人喜欢
if ((value == false) == true) ...
因为这证实该语句value is false实际上正在评估一个布尔值true ...
然后,显然,覆盖两个posssibilites增加了更多的清晰度,
if ((value == false) == true && (value == false) != false)
<grin/>
我建议,对于那些为了清晰起见而且需要无可争议的可读性的人而言
if (((value == false) == true && (value == false) != false) == true)
kem*_*002 20
if (!value)
Run Code Online (Sandbox Code Playgroud)
在我看来,这一点总是更加清晰.
if (value == false)
Run Code Online (Sandbox Code Playgroud)
我讨厌这样说,因为这听起来有点意思,但这通常表明编写代码的人并不真正理解布尔值的使用.您不需要重新验证if语句中的布尔值.这是多余的.
(就个人而言,如果他们将变量命名为变量value而不是更有意义的东西,我也会对这个人感到恼火.我感觉你发布的只是伪代码,我肯定会在评论中这样做.)
编辑(响应下面的评论):
它可能看起来微不足道,但往往它是更大的事情的标志.说实话,大多数使用var == true等的人都不明白.这只是一个事实.我不是说他们的愚蠢,或者他们不应该只是程序员,只是他们需要复习和学习.问题在于,当逻辑变得更加复杂时,不理解这样的概念可能会导致更大的问题.有人说"这是一种风格".没关系.在这种情况下,真正的问题是,"这样做对我有什么好处?我或其他人从中获得了什么?" 如果你不能坚定地回答这个问题,那么你需要问自己"为什么这是一个好主意?"
Bil*_*ard 13
我永远不会使用if(value == true),所以为了保持一致性,我也不会使用if(value != false).
Cla*_*edi 13
if(!value) 更清晰,更"优雅",特别是如果你正确地命名布尔变量
就像是
if (Page.IsPostback == true)
Run Code Online (Sandbox Code Playgroud)
对我来说似乎多余
Rob*_*cus 11
反对意见(种类)
从编译的角度来看,您将获得相同的IL,因此从可读性的角度来看,它才真正重要.
从这个角度来看,if(value == false)对于一个随意的读者来说更为明显,并且错过这个机会的可能性更小!布尔之前.
老实说,我使用这两种方法,而且大多数时候,我依赖于我的变量名称.如果仍然可以说"不"代替"爆炸",我可能会使用爆炸符号
例如
if(!gotValue) {}
//if (I've) not gotValue
//but
if(checkValue == false){}
//If (I've) not checkValue doesn't quite work here grammatically.
Run Code Online (Sandbox Code Playgroud)
我Not value在VB编码时使用,但value == false在C#编码时往往使用.我发现感叹号有时可能会丢失感叹号(例如!legal).也许是因为我是,呃,经验丰富的老兵.
| 归档时间: |
|
| 查看次数: |
14891 次 |
| 最近记录: |