关于c#:检查某些内容是否错误的首选编码样式是什么?

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形式多为享受它的简明和读了我。

在理解这一点,这可能是一种主观的问题所以我想知道那里是一个组合的偏好在任何上述的编码风格。


我见过高级开发人员的生产代码中包含这样的代码:

1
if (isCorrect.ToString().Length == 5)

但我仍在使用:

1
if (!isCorrect)

使用您认为对您更具可读性的内容,所有开发人员中都没有统计数据)


最好的方法(我不确定它是否是一个最佳实践,但它确实应该是)是不测试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 ?"
{
}

这不仅更加合乎逻辑,而且可以避免在需要遵循代码的实际流程时滚动来跳过错误处理。

此外,值得指出的是,为了完整性,布尔名称应该始终是正的:想想isCorrectisNotWrong……isPositiveisNotNegative比较…不仅阅读更容易理解。


鉴于以下情况:

1
bool isCorrect = theAnswer == 42;

检查反转的最清晰方法是(imho!):

1
2
3
4
5
6
bool isWrong = !isCorrect;

...

if (isWrong)
// throw exception


你说得对(!条件)更简洁。高级开发人员认为(condition==false)更"可见"(如果您愿意,也可以读取)是正确的。

因为这归根结底就是偏好,所以你应该按照高级开发人员的建议去做,不管你喜欢与否,都要保持一致。当你是高级开发人员时,你可以回去改变一切。