以下两种编码风格是否存在任何形式的共识?我更好奇的是,如果在C#中的优秀代码中通常首选一个这样的东西,或者这是在为编码项目选择样式时决定的事情.
风格1:使用!标志表示不符合条件
if (!myBool)
{
//Do Stuff...
}
Run Code Online (Sandbox Code Playgroud)
样式2:使用== false表示在条件中检查虚假
if (myBool == false)
{
//Do Stuff...
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
aqu*_*nas 36
通常的惯例是
if (!myBool)
Run Code Online (Sandbox Code Playgroud)
我没有走这条路的地方是可空的布尔.在那种情况下,我会这样做
if (myBool == true)
{
}
Run Code Online (Sandbox Code Playgroud)
这相当于
if (myBool.HasValue && myBool.Value)
Run Code Online (Sandbox Code Playgroud)
我不知道有哪种语言更喜欢后者。使用前者。
在大多数语言中,这确实符合您的期望:
if (x == false)
...
Run Code Online (Sandbox Code Playgroud)
但在例如 C++ 中,因为true是 1 的同义词(所以2不是 true 或 false),所以这是行不通的:
if (x != true)
...
Run Code Online (Sandbox Code Playgroud)
虽然在 C# 中没问题。
事实上,在 .NET 中它也可能变得棘手——你可以欺骗一个布尔值来获取一个整数值,并用按位算术搞乱它(例如,当is 1 和is 2a & b时可能为 false ,即使两者都是“true”) )。ab
一般来说,只需使用前者,而不必担心布尔文字。
| 归档时间: |
|
| 查看次数: |
52805 次 |
| 最近记录: |