Вставка форматирования символов в String.Format? - PullRequest
4 голосов
/ 14 августа 2011

Я гуглил это, но VB.Net (2008), похоже, не позволяет вставлять символы форматирования (например, \ t, \ r \ n) в String.Format:

'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 ]

11 голосов
/ 14 августа 2011

«Легче», вероятно, в глазах смотрящего, но здесь есть другой способ:

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

Я также придумал это:

MessageBox.Show(String.Format("{0}\t{1}\t{2}", "Foo", "Bar", "Test").Replace("\t", vbTab))
2 голосов
/ 15 августа 2011

Полагаю, есть еще один вариант:

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

Не самый читаемый, но лучше, чем & vbTab &.

2 голосов
/ 14 августа 2011

Использование vbTab работает нормально (и vbCrLf и т. Д. Также).

\ t \ n и т. Д. - это Fior C, а не VB

{tab} - это код для SendKeys

Я прихожу к выводу, что ваша третья строка является (единственным) рабочим методом, если что-то подобное

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

возможно: это читается легче, я думаю.

...