我想对以下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会多余?那时候很可能是假的,对吧?
只是用
if (Boolean.TryParse(Request.QueryString["cancel"], out canceled) && canceled)
{
// Transaction canceled...
}
Run Code Online (Sandbox Code Playgroud)
由于canceled不可为空,您不需要明确地与true布尔值进行比较,如(canceled == true) == canceled.