我为什么要在if块中使用正逻辑?

Gai*_*ter 2 microsoft-dynamics x++ axapta dynamics-ax-2009

我不明白为什么在if块中使用正逻辑是最佳实践

http://msdn.microsoft.com/en-US/library/aa629483.aspx

首选:

if (true) 
{ 
   ... 
} 
else 
{ 
   ... 
} 
Run Code Online (Sandbox Code Playgroud)

为什么在if块中具有正逻辑是最佳实践?

Mic*_*tta 13

通常被认为是更容易理解.

if (!ICanDoThis)
{
    // don't do it
}
else
{
    // do it
}
Run Code Online (Sandbox Code Playgroud)

if (ICanDoThis)
{
    // do it
}
else
{
    // don't do it
}    
Run Code Online (Sandbox Code Playgroud)

今天你的逻辑对你来说可能是清晰的,但想想从现在起几年内发生在它上面的开发人员.

但就像其他一切一样,这只是一个指导原则.具体来说,我使用像"负逻辑"这样的错误检查:

if (!myParametersAreValid)
{
    // fail out
}

DoWorkWith(myParameters)
Run Code Online (Sandbox Code Playgroud)

我避免了"正逻辑"否则会需要的级联条件.