我很想使用if ... else ...
,但我想知道是否有更简单的方法?我需要在消息框中显示true或false结果。
答案 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