将 bool 输出到控制台

Dav*_*son 1 c#

我认为这是一个简单的问题:-)

看看这个程序:

string v1 = "Hallo";
string v2 = "Hallo";

Console.WriteLine("Output" + v1 == v2);
Run Code Online (Sandbox Code Playgroud)

这仅输出以下内容:

错误的

但如果我写:

Console.WriteLine("Output" + true);
Run Code Online (Sandbox Code Playgroud)

它输出:

输出真

我认为“v1 == v2”评估为“true”,因此是相同的。但我显然错了。

谁能向我解释这种行为?我希望在这两种情况下得到相同的结果(OutputTrue)。第一种情况发生了什么?

小智 5

它首先添加v1到,"Output"所以你会得到以下语句:

Console.WriteLine("OutputHallo" == v2);

要解决此问题,您可以添加括号:

Console.WriteLine("Output" + (v1 == v2));

  • @DavidElsner 始终使用括号是一个很好的做法,因为它使操作符顺序(和程序员的意图)对于每个阅读代码的人来说都很清楚。也避免了类似这样的错误。 (2认同)