gpt4 book ai didi

c# - 为什么 Boolean.ToString 输出 "True"而不是 "true"

转载 作者:IT王子 更新时间:2023-10-29 03:29:19 26 4
gpt4 key购买 nike

true.ToString() 
false.toString();

Output:
True
False

它是“真”而不是“真”是否有正当理由?它在编写 XML 时中断,因为 XML 的 boolean 类型是小写,并且与 C# 的 true/false 不兼容(尽管不确定 CLS)。

更新

这是我在 C# 中绕过它的非常 hacky 的方法(用于 XML)

internal static string ToXmlString(this bool b)
{
return b.ToString().ToLower();
}

当然,这会在堆栈中再添加 1 个方法,但会在所有地方删除 ToLowers()。

最佳答案

只有 Microsoft 的人才可以真正回答这个问题。不过,我想提供一些关于它的有趣事实;)

首先,这是它在 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。它使用硬编码文字“True”和“False”。如果它使用这些字段,对您没有任何好处,因为它们被标记为只读,因此无法更改它们。

替代方法 Boolean.ToString(IFormatProvider) 甚至更有趣:

Remarks

The provider parameter is reserved. It does not participate in the execution of this method. This means that the Boolean.ToString(IFormatProvider) method, unlike most methods with a provider parameter, does not reflect culture-specific settings.

解决方案是什么?取决于你到底想做什么。不管是什么,我敢打赌它需要破解 ;)

关于c# - 为什么 Boolean.ToString 输出 "True"而不是 "true",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/491334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com