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

发布于 2024-10-25 03:15:42 字数 290 浏览 1 评论 0原文

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

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

首选:

if (true) 
{ 
   ... 
} 
else 
{ 
   ... 
} 

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

I don't understand why it is a best practice to use positive logic in an if block

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

Preferred:

if (true) 
{ 
   ... 
} 
else 
{ 
   ... 
} 

Why it is a best practice to have positive logic in an if block?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦里兽 2024-11-01 03:15:42

通常认为更容易理解。

if (!ICanDoThis)
{
    // don't do it
}
else
{
    // do it
}

今天你

if (ICanDoThis)
{
    // do it
}
else
{
    // don't do it
}    

的逻辑可能非常清晰,但想想几年后遇到这个问题的开发人员。

但与其他一切一样,这只是一个指导方针。具体来说,我使用诸如“负逻辑”之类的错误检查:

if (!myParametersAreValid)
{
    // fail out
}

DoWorkWith(myParameters)

我避免了“正逻辑”本来需要的一系列条件。

It's generally regarded as easier to understand.

if (!ICanDoThis)
{
    // don't do it
}
else
{
    // do it
}

vs.

if (ICanDoThis)
{
    // do it
}
else
{
    // don't do it
}    

Your logic may be crystal-clear to you today, but think of the developer who happens across it a couple of years from now.

But like everything else, this is only a guideline. Specifically, I use something like "negative logic" with error checking:

if (!myParametersAreValid)
{
    // fail out
}

DoWorkWith(myParameters)

I avoid a cascade of conditionals that "positive logic" would otherwise require.

画骨成沙 2024-11-01 03:15:42

我有时会做这样的半正逻辑。我认为这在技术上是正逻辑,因为它不使用“非”运算符。有时我发现很难总是使用正逻辑,因为它最终会使我的代码变得不干净:

if (ICanDoThis == false)
{
  // I can't do this
}
else
{
  // I can do this
}

I sometimes do a semi-positive logic like this. I think it's technically positive logic because it doesn't use "not" operators. I sometimes find it hard to always use positive logic because it ends up making my code un-clean:

if (ICanDoThis == false)
{
  // I can't do this
}
else
{
  // I can do this
}
弄潮 2024-11-01 03:15:42

我总是看到人们首先测试最可能的结果。例如,模式对话框通常有一个默认按钮(突出显示)您看到这个是因为它最有可能或最常见。因此,如果您期望 true 您会看到

if (true) {

} else {

}

I have always seen people test the most probable outcome first. For example modal dialogs normally have a default button(highlighted) You see this because it is most probable or most common that this will be used.So if you are expecting true you would see

if (true) {

} else {

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文