3

次のIFステートメントについて説明をお願いします。私はこの種のステートメントが多くの異なる方法で書かれることができることを知っています...それは私が求めているものではありません。canceled == trueReSharper7が比較が冗長であると私に言っている理由に私は本当に興味があります。

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

outパラメータの実際の結果Boolean.TryParse()ではなく、変換の成功に基づいてtrue/falseを返すのは私の理解です。では、なぜ比較は冗長になるのでしょうか。その時点でそれは非常によく間違っている可能性がありますよね?canceled == true

4

1 に答える 1

10

使用するだけ

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

null許容型ではないため、ブール値canceledと明示的に比較する必要はありません。true(canceled == true) == canceled

于 2013-02-26T17:46:07.323 に答える