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

Der*_*ker 2 c# resharper

我想对以下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会多余?那时候很可能是假的,对吧?

ken*_*n2k 9

只是用

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

由于canceled不可为空,您不需要明确地与true布尔值进行比较,如(canceled == true) == canceled.