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()。


当前回答

为什么它不兼容c# ?布尔。解析和布尔。TryParse是不区分大小写的,解析是通过将值与布尔值进行比较来完成的。TrueString或Boolean。“True”和“False”。

编辑:当看布尔。ToString方法,结果是字符串是硬编码的,所以ToString方法如下:

public override string ToString()
{
    if (!this)
    {
        return "False";
    }
    return "True";
}

其他回答

为什么它不兼容c# ?布尔。解析和布尔。TryParse是不区分大小写的,解析是通过将值与布尔值进行比较来完成的。TrueString或Boolean。“True”和“False”。

编辑:当看布尔。ToString方法,结果是字符串是硬编码的,所以ToString方法如下:

public override string ToString()
{
    if (!this)
    {
        return "False";
    }
    return "True";
}

这是一段简单的代码,可以把它全部转换成小写。

然而,将“真”转换为“真”并不是那么简单。

true.ToString().ToLower() 

是我用于xml输出的。

对于Xml,可以使用XmlConvert。ToString方法。

这可能来自于旧的VB NOT . net时代。ToString产生True或False。

我知道为什么它是这样的原因已经被解决了,但当涉及到“自定义”布尔格式时,我有两个扩展方法,我不能再没有了:-)

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");