布尔类型

Mic*_*nov 2 c# language-agnostic boolean coding-style

在代码审查期间,我发现了许多C#代码的地方,如下所示:

if(IsValid()) {
     return true;
}
else {
     return false;
}
Run Code Online (Sandbox Code Playgroud)

甚至"更好":

return (IsValid()? true : false);
Run Code Online (Sandbox Code Playgroud)

我总是想知道为什么不写这样的代码:

return IsValid();
Run Code Online (Sandbox Code Playgroud)

这是我编写此代码的方式.我不是在质疑开发人员的技能,而是试图调查开发人员的灵魂.为什么开发人员喜欢更复杂的代码而不是更简单直观?或者可能是因为很难接受布尔类型作为一等公民?

Meh*_*ari 15

我认为return IsValid();是完全有效和可读的代码.

顺便说一句,我肯定会打击任何写(IsValid() ? true : false)的人.这是不必要的复杂.

PS.这就是svn blame为此而设计的.


cha*_*aos 7

是的,你应该像你说的那样做.这些人正在做这些过于冗长的事情,因为他们首先就是这样学习的,也许是在CS 101中,他们从未想过要走出他们所知道的空间,看看是否有更好,更简单的方法.

这确实说明了他们的能力.优秀的程序员需要更有思想,更少隐藏.