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

时间:2013-02-26 17:45:11

标签: c# resharper

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

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

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

1 个答案:

答案 0 :(得分:9)

只需使用

if (Boolean.TryParse(Request.QueryString["cancel"], out canceled) && canceled)
{
    // Transaction canceled...
}

由于canceled不可为空,因此您无需明确与true布尔值进行比较,因为(canceled == true) == canceled