6

シンプルな C# コード

    bool result;
    if (bool.TryParse("false", out result) && result)
    {
        Console.WriteLine(result);
    }

    bool result;
    if (bool.TryParse("tRue", out result) && result)
    {
        Console.WriteLine(result);
    }

Resharper は、その結果Console.WriteLine(result)が常にであると言いtrueます。なんで?

4

3 に答える 3

22

それはその部分によるものです -が true の&& result場合にのみ、ステートメントの本文に入ります。result存在することでそこに入る方法はどのように予想resultされfalseますか?

于 2012-10-01T18:18:33.623 に答える
4

Reharper があなたに言っていることは、もしあなたがやっているなら、

Console.WriteLine(result);

あなたもそうするかもしれません

Console.WriteLine(true);

つまり、if 内で結果を使用する場合はどこでも、true を使用することもできます。false の場合、resultif の本体には到達しないからです。

于 2012-10-01T18:23:47.243 に答える
2

なぜならif(true && false)(構文解析を解決するときに得られるものです)if本体には決して入りません。これが、最初の例で解析しているものです。

于 2012-10-01T18:28:15.543 に答える