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()。
...因为. 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 '类型)。
...因为. 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 '类型)。
只有微软的人才能回答这个问题。然而,我想提供一些关于它的有趣事实;)
首先,这是MSDN中关于Boolean.ToString()方法的描述:
Return Value
Type: System.String
TrueString if the value of this
instance is true, or FalseString if
the value of this instance is false.
Remarks
This method returns the
constants "True" or "False". Note that
XML is case-sensitive, and that the
XML specification recognizes "true"
and "false" as the valid set of
Boolean values. If the String object
returned by the ToString() method
is to be written to an XML file, its
String.ToLower method should be
called first to convert it to
lowercase.
这里有一个有趣的事实#1:它根本不返回TrueString或FalseString。它使用硬编码的字面量“真”和“假”。如果它使用这些字段也没有任何好处,因为它们被标记为只读,所以不能更改它们。
另一种方法Boolean.ToString(IFormatProvider)甚至更有趣:
讲话
提供者参数是保留的。它不参与该方法的执行。这意味着Boolean.ToString(IFormatProvider)方法与大多数带有提供者参数的方法不同,它不反映特定于区域性的设置。
解决方案是什么?这取决于你到底想做什么。不管它是什么,我打赌它需要一个黑客;)