Vb.net 如何将布尔类型转换为;关于&引用;关「;使用String.Format

Vb.net 如何将布尔类型转换为;关于&引用;关「;使用String.Format,vb.net,formatting,conditional,string-formatting,Vb.net,Formatting,Conditional,String Formatting,是否有任何方法可以使用字符串格式化程序将布尔类型转换为“开”/“关”,如: Dim inpValue as Boolean Dim outValue = String.Format("0:ON;OFF", inpValue) ' should show OFF as output 没有代码或IFormatProvider?您无法使用String.Format(如果不实现这一点,就您的目的而言,这似乎是一种过分的做法),但您可以使用以下命令在一行中完成: 就我个人而言,我建议使用If/Else语

是否有任何方法可以使用字符串格式化程序将布尔类型转换为“开”/“关”,如:

Dim inpValue as Boolean
Dim outValue = String.Format("0:ON;OFF", inpValue)
' should show OFF as output

没有代码或IFormatProvider?

您无法使用String.Format(如果不实现这一点,就您的目的而言,这似乎是一种过分的做法),但您可以使用以下命令在一行中完成:

就我个人而言,我建议使用If/Else语句而不是IIf,因为对于一些来自其他语言的程序员来说,IIf并不直观。

这应该可以帮助您:


据我所知,没有任何内置支持。但是,根据控制的程度,您可以创建自己的格式提供程序()。这里有一个关于这个问题的讨论链接:。

有什么问题:

Dim inpValue as Boolean
Dim outValue = If(inpValue, "ON", "OFF")
c#-不是最优雅但最有效的:

字符串outValue=inpValue.ToString().Replace(“False”、“OFF”).Replace(“True”、“ON”)

这里有一个来自的疯狂把戏,但它完全不可读。我强烈建议你不要这样做!如果你有神经质,现在就停止阅读

String.Format("{0:ON;ON;OFF}", CDbl(inpValue)) 

这将
布尔值
转换为
-1
0
,然后使用。

我的眼睛在流血!字符串操作是一个非常糟糕的逻辑实现。毫无疑问(正如我承认的)。对不起你的眼睛!VB的IIf的C#等价物:var outValue=inpValue?“开”:“关”;
String.Format("{0:ON;ON;OFF}", CDbl(inpValue))