如何使用 String.Format 将布尔类型转换为“ON”“OFF”
Posted
技术标签:
【中文标题】如何使用 String.Format 将布尔类型转换为“ON”“OFF”【英文标题】:How to convert Boolean type into "ON" "OFF" using String.Format 【发布时间】:2011-06-03 02:31:53 【问题描述】:有什么方法可以使用字符串格式化程序将布尔类型转换为“ON”/“OFF”,例如:
Dim inpValue as Boolean
Dim outValue = String.Format("0:ON;OFF", inpValue)
' should show OFF as output
没有代码或 IFormatProvider?
【问题讨论】:
【参考方案1】:这是来自another question 的一个疯狂技巧,但它完全不可读。我强烈建议你不要这样做!如果您有紧张的性格,请立即停止阅读。
String.Format("0:ON;ON;OFF", CDbl(inpValue))
这会将Boolean
转换为-1
或0
,然后使用custom numeric format。
【讨论】:
【参考方案2】:c# - 不是最优雅但最有效的:
字符串 outValue = inpValue.ToString().Replace("False", "OFF").Replace("True", "ON");
【讨论】:
我的眼睛在流血!字符串操作是一种非常糟糕的逻辑实现。 毫无疑问(我承认)。对不起你的眼睛! VB 的 IIf 的 C# 等价物: var outValue = inpValue ? “开”:“关”;【参考方案3】:您无法使用 String.Format 执行此操作(不实现 IFormatProvider,这对于您的目的来说似乎有点过头了),但您可以使用 IIf 在一行中执行此操作:
IIf(inpValue, outValue=True, outValue=False)
我个人建议使用 If/Else 语句而不是 IIf,因为 IIf 对于一些来自其他语言的程序员来说并不直观。
【讨论】:
【参考方案4】:有什么问题:
Dim inpValue as Boolean
Dim outValue = If(inpValue, "ON", "OFF")
【讨论】:
【参考方案5】:据我所知,没有任何内置支持。但是,根据您的控制程度,您可以创建自己的格式提供程序 (IFormatProvider)。这是一个讨论的链接:bool format provider。
【讨论】:
【参考方案6】:这应该对你有帮助:
http://www.developmentnow.com/g/38_2004_4_0_0_238356/iformatprovider-for-boolean.htm
【讨论】:
以上是关于如何使用 String.Format 将布尔类型转换为“ON”“OFF”的主要内容,如果未能解决你的问题,请参考以下文章
最全JAVA字符串格式化-String.format()的使用 [记录贴]