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

发布于 2024-11-30 00:35:20 字数 342 浏览 0 评论 0原文

我用谷歌搜索了这个,但 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"))

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

I googled for this, but VB.Net (2008) doesn't seem to allow inserting formatting characters (eg. \t, \r\n) in 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"))

Is there an easier way to build a formatted string that must contain formatting characters?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

謌踐踏愛綪 2024-12-07 00:35:20

“更简单”可能是情人眼里出西施,但这里有一个不同的方式:

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

我也想出了这个:

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

"Easier" is probably in the eye of the beholder, but here is a different way:

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

I also came up with this:

MessageBox.Show(String.Format("{0}\t{1}\t{2}", "Foo", "Bar", "Test").Replace("\t", vbTab))
过气美图社 2024-12-07 00:35:20

我想另一个选择是:

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

不是最具可读性,但比 & 更好。 vbTab &.

I suppose another option is:

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

Not the most readable, but better than & vbTab &.

望她远 2024-12-07 00:35:20

使用 vbTab 效果很好(还有 vbCrLf 等)。

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

{tab} 是 SendKeys 的代码

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

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

是可能的:我想它读起来更容易。

Using vbTab works fine (and vbCrLf etc also).

\t \n etc is fior C, not VB

{tab} is a code for SendKeys

I conclude that your 3rd line is the (only) working method unless something like this

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

is possible: it reads easier I guess.

ま柒月 2024-12-07 00:35:20

最近的版本支持插值字符串以将其简化为:

MessageBox.Show(String.Format($"{{0}}{vbTab}{{1}}", "Foo", "Bar"))

或者只是:

MessageBox.Show($"{"Foo"}{vbTab}{"Bar"}")

注意第一个 " 之前的 $ (以及第一个版本中重复的大括号)。

Recent versions support interpolated strings to simplify it to this:

MessageBox.Show(String.Format(
quot;{{0}}{vbTab}{{1}}", "Foo", "Bar"))

Or just:

MessageBox.Show(
quot;{"Foo"}{vbTab}{"Bar"}")

Note the $ before the first " (and duplicated braces in the first version).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文