相关疑难解决方法(0)

我应该使用`!IsGood`还是`IsGood == false`?

我一直看到像这样检查的代码

if (IsGood == false)
{
   DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

或这个

if (IsGood == true)
{
   DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

我讨厌这种语法,并始终使用以下语法.

if (IsGood)
{
   DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

要么

if (!IsGood)
{
   DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

有没有理由使用' == true'或' == false'?

这是一个可读性的东西吗?人们只是不了解布尔变量?

另外,这两者之间是否有任何性能差异?

language-agnostic boolean not-operator

46
推荐指数
12
解决办法
5296
查看次数

ReSharper告诉我IF语句里面的Boolean.TryParse()多余?

我想对以下IF声明做一些澄清.我知道这种说法可以用很多不同的方式写出来......那不是我要问的.我很好奇为什么ReSharper 7告诉我比较canceled == true是多余的.

bool canceled;
if (Boolean.TryParse(Request.QueryString["cancel"], out canceled) && 
    canceled == true)
{
    // Transaction canceled...
}
Run Code Online (Sandbox Code Playgroud)

我的理解是,Boolean.TryParse()将根据转换的成功返回true/false,而不是out参数的实际结果.为什么那么比较canceled == true会多余?那时候很可能是假的,对吧?

c# resharper

2
推荐指数
1
解决办法
789
查看次数

布尔语法的性能和优雅问题

问题更多的是性能问题而不是优雅,我为自己说话,但......

有两个实现选项,cpu计算速度更快,或者最后它是相同的(我倾向于认为是,因为条件是(x <10)相同)

    public int DidLogcount = 0; // DidLogCount is raised by +1 every time we deside, then condition is met 
    public bool MoreLogsAllowed()
    {
        if (DidLogcount < 10) return true;
        else return false;
    }
Run Code Online (Sandbox Code Playgroud)

VS

    public bool MoreLogsAllowed()
    {
       return DidLogcount < 10;
    }
Run Code Online (Sandbox Code Playgroud)

我们大部分时间都会检查它是否为空,但是,如果我们必须,它将包括两种情况,所以如果我没有错过任何其他问题,我猜我只是缩小它(?).

我会说出正确的答案.谢谢.

Rediting:我只想标记正确答案,但在页面上刷新了3个以上...

等待形成更多选票......而现在,我真的要感谢你们所有人!为了分享你的知识,它确实经过了我的思考,编译器的优化问题,所以...有那些打印输出显示的东西,虽然它的自我很少差别,但当添加到一堆条件,它是少的很少,除非我们谈论一个真正复杂的应用程序,否则我不会说大.我应该说,性能问题永远不是一个小问题,而且由于@Steve和@Nick为我们实际测试它,因此具有逻辑和可读性.

c# logic boolean coding-style c#-4.0

1
推荐指数
1
解决办法
117
查看次数