在C#中从bool转换为字符串的最简单方法是什么?

时间:2010-10-05 21:27:06

标签: c#

我很想使用if ... else ...,但我想知道是否有更简单的方法?我需要在消息框中显示true或false结果。

10 个答案:

答案 0 :(得分:14)

bool.ToString方法已经做了你想做的事。

  

此方法返回常量“True”或“False”。

但实际上,您需要直接从代码中明确调用ToString。如果您已经在编写字符串,那么最简单的方法是使用连接:

string message = "The result is " + b;

这会编译为string.Concat的来电,并为您调用ToString方法。

在某些情况下,使用String.Format会很有用,并再次为您调用ToString方法:

string message = string.Format("The result is {0}. Try again?", b);

答案 1 :(得分:9)

bool b = true;
Console.WriteLine(b.ToString());

答案 2 :(得分:6)

我要扔掉:

val ? "true" : "false"

进入混合,因为通常需要小写结果(许多机器可读格式,例如许多XML格式,对于布尔值使用小写“true”和“false”)并且上面是比val.ToString().ToLowerInvariant()更快,IMO也更清洁。

当然,val ? "yes" : "no"等的扩展是微不足道的。可定位是另一回事,并不总是微不足道(如果翻译得很好,很多案例会有完全不同的句子,因此messageStart + (val ? "yes" : "no") + messageEnd的逻辑并不总是有效。

答案 3 :(得分:2)

bool v = true;  
string s = v.ToString();

答案 4 :(得分:2)

.ToString()有什么问题,每个对象都有?

bool myBool = false;
string myString = myBool.ToString();

答案 5 :(得分:1)

这是一个单行。所有c#类型都派生自Object,因此继承了该类的方法。

我会在这里指出你:http://msdn.microsoft.com/en-us/library/system.object.aspx让你找到它。

答案 6 :(得分:1)

  bool myBool = true;  
  MessageBox.show(myBool.toString());

答案 7 :(得分:1)

始终建议在Convert类下使用静态函数。在你的情况下

bool boolValue = true; System.Convert.ToString(boolValue);

答案 8 :(得分:0)

如果要使其完全可本地化,可以将名为UiStrings的资源文件添加到项目中,并为每个布尔值添加一个条目。 Visual Studio将为资源管理器生成一个包装器(使用PublicResXFileCodeGenerator或ResXFileCodeGenerator),然后您可以使用静态属性进行访问。

然后,您可以像这样使用它:

var booleanValue = true;  
var booleanText = booleanValue ? UiStrings.TrueValueText : UiStrings.FalseValueText;  
var messageText = UiString.ResultMessageText;  
var messageString = String.Format("{0}:{1}", messageText, booleanText);

详细代码是有意的,以便您可以识别不同的部分。

答案 9 :(得分:-1)

我知道你没有问这个问题,但是为了把我自己的自恋声音添加到混音中,这就是你如何从bool(0,1)获得一个int

using System;

class Program
{
    static void Main()
    {
        // Example bool is true
        bool t = true;

        // A
        // Convert bool to int
        int i = t ? 1 : 0;
        Console.WriteLine(i); // 1

        // Example bool is false
        bool f = false;

        // B
        // Convert bool to int
        int y = Convert.ToInt32(f);
        Console.WriteLine(y); // 0
    }
}

输出:

1

0