在String.Format中插入格式化字符?

时间:2011-08-13 23:59:12

标签: vb.net string formatting

我用Google搜索,但VB.Net(2008)似乎不允许在String.Format中插入格式化字符(例如。\ t,\ r \ n):

'BAD MessageBox.Show(String.Format("{0}{tab}{1}", "Foo", "Bar"))
'BAD MessageBox.Show(String.Format("{0}\t{1}", "Foo", "Bar"))
MessageBox.Show(String.Format("{0}" & vbTab & "{1}", "Foo", "Bar"))

是否有更简单的方法来构建必须包含格式字符的格式化字符串?

3 个答案:

答案 0 :(得分:11)

“更容易”可能是旁观者的眼睛,但这是一种不同的方式:

MessageBox.Show(String.Join(vbTab, {"Foo", "Bar"}))

我也想到了这个:

MessageBox.Show(String.Format("{0}\t{1}\t{2}", "Foo", "Bar", "Test").Replace("\t", vbTab))

答案 1 :(得分:2)

使用vbTab工作正常(还有vbCrLf等)。

\ t \ n等是fior C,而不是VB

{tab}是SendKeys的代码

我得出结论,你的第3行是(唯一的)工作方法,除非像这样

MessageBox.Show("Foo" & vbTab & "Bar")

是可能的:我猜它更容易。

答案 2 :(得分:2)

我想另一种选择是:

String.Format("{1}{0}{2}{0}{3}{0}{4}", vbTab, "Foo", "Bar", "was", "here")

不是最具可读性,但优于& vbTab &