What is the preferred coding style for checking if something is false?
给定下面的:
1
| bool isCorrect = theAnswer == 42; |
这是首选的方式测试false布尔逻辑的#(C编程的通用)?
1 2
| if (!isCorrect)
// throw exception |
或
1 2
| if (isCorrect == false)
// throw exception |
在冰的原因,因为一问,我们的高级开发人员的工作suggests我们应该总是用笑声作为它的方法enhances ensures readability和其他开发人员可以明确看到假支票;exclamation马克e小姐两个冰淇淋。在《prefer形式多为享受它的简明和读了我。
在理解这一点,这可能是一种主观的问题所以我想知道那里是一个组合的偏好在任何上述的编码风格。
- 我认为没有明确的风格。只需跟随开发主管。
- 说我更喜欢(!iscorrect)但是后者更容易阅读
- 每个公司都有自己的首选编码风格。你应该这样做。
- stackoverflow.com/questions/356217/…的可能副本
- 一个恼人的地方是负的布尔名称:if(!isNotEnabled),这会导致混淆。而!很容易漏掉:if(!inCache)。但是,每个人都喜欢自己的风格。
- 按照当地的风格,但我个人发现(!iscorrect)比(iscorrect==false)更容易阅读,我必须从精神上翻译为(!iscorrect)无论如何……我看到"!"没问题!字符(我也不难区分"+"和"-"等…)。有些人建议引入一个名为"isnotcorrect"(在本例中可能是"iswrong")的属性,因此,如果(iswrong),您的可读性会更高。想想看,到底谁找到了一个"!"容易错过?他们还会混淆"!"还有"!=?
- 我个人更喜欢!是正确的。但最重要的是在你的项目中保持一致。这就是最容易阅读的地方;)
- @Ruijarimba,很好的发现,尽管这个问题没有找到任何搜索结果(可能是因为标题)。
我见过高级开发人员的生产代码中包含这样的代码:
1
| if (isCorrect.ToString().Length == 5) |
但我仍在使用:
使用您认为对您更具可读性的内容,所有开发人员中都没有统计数据)
最好的方法(我不确定它是否是一个最佳实践,但它确实应该是)是不测试false。
1 2 3 4 5 6 7 8 9 10 11
| // First question:"Is the answer correct ?"
bool isCorrect = theAnswer == 42;
// Second question:"What if it is ?"
if (isCorrect)
{
}
else //Third question:"What if it isn't ?"
{
} |
这不仅更加合乎逻辑,而且可以避免在需要遵循代码的实际流程时滚动来跳过错误处理。
此外,值得指出的是,为了完整性,布尔名称应该始终是正的:想想isCorrect和isNotWrong……isPositive与isNotNegative比较…不仅阅读更容易理解。
- 是的,这除了避免在pitfalls最经常,你可以找一个最终的代码,你有很多的"如果"和"实际的代码块结束块在"其他"。但你可以让我避免这使镰刀的布尔"正确"的方式,这样,类似于你说的"正确的",而不是"使用是错误的"。
- 我完全同意(忘了它:a)它会读取布尔"这是真的,四状态i的值是false其填写"应avoided(当然,这不是在石集:它只是一个原则。整个点是保持代码逻辑,易于遵循)
- "亚历克斯",我很欣赏你的回答虽然它(没有双关语和逻辑的目的),I don’t认为我同意它。我是一个平凡的例子一个简单的,但有时你无法避免假!someList.Any()检查,例如。
- 我站在我的话:假检查是很容易,你可以misread if (someList.Any()) {} else {}小姐是没有办法。
鉴于以下情况:
1
| bool isCorrect = theAnswer == 42; |
检查反转的最清晰方法是(imho!):
1 2 3 4 5 6
| bool isWrong = !isCorrect;
...
if (isWrong)
// throw exception |
- 在另一个问题,也许我们需要的是错误的(正确的:布尔= = = false);这里?)
- 那些困难…你会写"X = 0,y"而不是"X = Y?"NO?为什么要做这样一个相当于一个布尔?嗯,显然这只是一个人的偏好。:)
你说得对(!条件)更简洁。高级开发人员认为(condition==false)更"可见"(如果您愿意,也可以读取)是正确的。
因为这归根结底就是偏好,所以你应该按照高级开发人员的建议去做,不管你喜欢与否,都要保持一致。当你是高级开发人员时,你可以回去改变一切。
- 我不认为有任何更多的目标答案是可读的。和"I find if(!"更多的比读正确)(正确的"如果"= = false),因为我可以读取它,如果它是"正确的",而在"if(正确的= = FALSE)"我要改变顺序的意义。但这只是我的个人意见。我只是说,你不能objectively说这是最好的。
- matthewwatson:"同意,你不能说这是最好的,所以这就是为什么我说你想做什么(老板)。同时,我想这是一个更好的长期比可见的是"读"。运动沿,我想说,我喜欢!状态)