一个简单的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
。为什么呢?
答案 0 :(得分:22)
这是由&& result
部分引起的 - 如果result
为真,你只会进入声明的正文。如果result
为false
,您如何预期到达那里?
答案 1 :(得分:4)
Reharper告诉你的是,如果你在做什么
Console.WriteLine(result);
你也可以这样做
Console.WriteLine(true);
也就是说,在if中使用结果的任何地方,你也可以使用true,因为如果result
为假,你就不会到达if的主体。
答案 2 :(得分:2)
因为if(true && false)
(这就是你得到的,当你解析解析时)永远不会进入if体。这就是你在第一个例子中解析的内容。