true.ToString()
false.toString();
Output:
True
False
是否有一个合理的理由来证明它是“真的”而不是“真的”?当XML的布尔类型是小写时,它就会崩溃,而且也不兼容c#的true/false(不过CLS就不确定了)。
更新
下面是我用c#(用于XML)解决这个问题的一种非常简单的方法。
internal static string ToXmlString(this bool b)
{
return b.ToString().ToLower();
}
当然,这会向堆栈中多添加1个方法,但会在所有地方删除ToLowers()。
我知道为什么它是这样的原因已经被解决了,但当涉及到“自定义”布尔格式时,我有两个扩展方法,我不能再没有了:-)
public static class BoolExtensions
{
public static string ToString(this bool? v, string trueString, string falseString, string nullString="Undefined") {
return v == null ? nullString : v.Value ? trueString : falseString;
}
public static string ToString(this bool v, string trueString, string falseString) {
return ToString(v, trueString, falseString, null);
}
}
使用是微不足道的。下面将各种bool值转换为葡萄牙语表示形式:
string verdadeiro = true.ToString("verdadeiro", "falso");
string falso = false.ToString("verdadeiro", "falso");
bool? v = null;
string nulo = v.ToString("verdadeiro", "falso", "nulo");
...因为. net环境被设计成支持多种语言。
系统。布尔(在mscorlib.dll中)被设计为在语言内部使用以支持布尔数据类型。c#的关键字全部使用小写字母,因此是'bool', 'true'和'false'。
VB。NET使用标准的大小写:因此是'Boolean', 'True'和'False'。
因为这两种语言必须协同工作,所以true.ToString() (c#)不能给出与true.ToString() (VB.NET)不同的结果。CLR设计人员为ToString()结果选择了标准CLR大小写符号。
布尔值true的字符串表示形式定义为boolean . truestring。
(System也有类似的情况。String: c#将其表示为' String '类型)。