字符串中的变量替换

16

我能在VB.NET中像这样做吗:"%s 说 %s blah.",其中 $name 和 $blah 是变量?

name & "说" & blah & "blah" 已经让人痛苦了。

2个回答

31

在 VB.NET 14 (for VS2015) 中,您可以使用 字符串插值

Dim newString As String = $"{name} said {blah} blah."

1
有人能想到为什么这可能不是一种改进吗?我想告诉我的团队这是一个毫无疑问的改进,但在宣称之前,我想确保自己没有遗漏任何东西。 - user74754
如果您将来有国际化的需求,您需要回到 String.Format 调用,以便格式字符串可以成为一个变量或函数,从资源文件中检索等。 - Mark Hurd
1
为了国际化,您还可以使用一个辅助函数,这样对代码的修改就会更少,如此处所述public string Format(FormattableString fs) { // 获取默认语言字符串的本地化版本: var localFormat = GetLocalized(fs.Format); // 将生成的格式字符串传递给 String.Format: return String.Format(localFormat, fs.GetArguments()); } - bkqc
@user74754,我刚刚在VS2017中发现了这个用C#.NET编写的代码(长期以来一直是VB.NET/VS2013的用户),我非常喜欢它。在我看来,它比String.Format"this" &/+ "that"更好。我将全面采用它。 - SteveCinq

24

没错,使用String.Format

Dim newString As String = String.Format("{0} said {1} blah.", name, blah)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接