我不明白为什么在 if 块中使用正逻辑是最佳实践
http://msdn.microsoft.com/en-US/library/aa629483.aspx
首选:
if (true)
{
...
}
else
{
...
}
为什么在 if 块中使用正逻辑是最佳实践?
我不明白为什么在 if 块中使用正逻辑是最佳实践
http://msdn.microsoft.com/en-US/library/aa629483.aspx
首选:
if (true)
{
...
}
else
{
...
}
为什么在 if 块中使用正逻辑是最佳实践?
它通常被认为更容易理解。
if (!ICanDoThis)
{
// don't do it
}
else
{
// do it
}
对比
if (ICanDoThis)
{
// do it
}
else
{
// don't do it
}
你的逻辑今天对你来说可能非常清楚,但想想几年后发生在它上面的开发人员。
但就像其他一切一样,这只是一个指导方针。具体来说,我使用诸如“负逻辑”之类的错误检查:
if (!myParametersAreValid)
{
// fail out
}
DoWorkWith(myParameters)
我避免了“正逻辑”否则需要的一系列条件。
我有时会做这样的半积极逻辑。我认为这在技术上是积极的逻辑,因为它不使用“非”运算符。我有时发现很难总是使用积极的逻辑,因为它最终使我的代码不干净:
if (ICanDoThis == false)
{
// I can't do this
}
else
{
// I can do this
}
我总是看到人们首先测试最可能的结果。例如,模态对话框通常有一个默认按钮(突出显示)你看到这个是因为它最有可能或最常见的是它会被使用。所以如果你期待 true 你会看到
if (true) {
} else {
}