鉴于以下内容:
bool isCorrect = theAnswer == 42;
在C#(一般编程)中测试false
布尔逻辑的首选方法是什么?
if (!isCorrect)
// throw exception
或
if (isCorrect == false)
// throw exception
我问的原因是因为我们的一位高级开发人员建议我们应该始终使用后一种方法,因为它增强了可读性并确保其他开发人员可以清楚地看到错误检查;感叹号很容易错过。我更喜欢前者,因为它对我来说更加简洁和可读。
我知道这可能是一个主观问题,所以想知道是否有任何编码风格提到的具体偏好。
答案 0 :(得分:3)
我见过包含此类代码的高级开发人员的生产代码:
if (isCorrect.ToString().Length == 5)
但我还在使用:
if (!isCorrect)
使用您认为更易读的内容,所有开发人员之间没有统计数据))
答案 1 :(得分:1)
首选方式(我不确定它实际 是最佳做法,但绝对应该是这样)是不测试{{1} }
false
它不仅更符合逻辑,而且如果您需要遵循代码的实际流程,则可以避免滚动跳过错误处理。
此外,值得指出的是布尔名称应始终为正的完整性:认为// 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 ?"
{
}
VS isCorrect
... isNotWrong
VS isPositive
。 ..不仅更容易阅读而且更容易理解。
答案 2 :(得分:0)
(!条件)更简洁。你是对的 高级开发人员是正确的,(条件==假)更“可见”(如果您愿意,也可读)。
因为它只是归结为偏好,所以你应该按照高级开发人员的建议去做,不管你喜欢与否,都要保持一致。当你是高级开发者时,你可以回去改变一切。
答案 3 :(得分:0)
鉴于以下内容:
bool isCorrect = theAnswer == 42;
检查逆的最清楚的方法是(恕我直言!):
bool isWrong = !isCorrect;
...
if (isWrong)
// throw exception