58

&在 VB.NET 中,使用连接字符串而不是连接字符串有什么好处+

例如

Dim x as String = "hello" + " there"

对比

Dim x as String = "hello" & " there"

是的,我知道很多我想使用的字符串连接StringBuilder,但这更像是一个普遍的问题。

4

5 回答 5

46

Microsoft 的偏好是 VB 程序员使用&字符串而不是+.

您还可以使用 + 运算符连接字符串。但是,为了消除歧义,您应该改用 & 运算符。

于 2010-06-09T14:15:42.403 回答
44

我听到了支持这两个运营商的有力的论据。哪一个论点获胜很大程度上取决于你的情况。我可以说的一件事是你应该标准化其中之一。将两者混合的代码稍后会要求混淆。

我现在记得的两个赞成的论点&

  • 如果您没有使用Option Strict并且有两个数字字符串,编译器很容易将+运算符的含义与算术加法混淆
  • 如果您要更新许多较旧的 vb6 时代的代码,则不必转换连接运算符会有所帮助(请记住:我们需要一致性)。

对于+

  • 如果您有一个混合的 vb/C# 商店,最好只有一个连接运算符。它使在语言之间移动代码变得更容易,并且意味着程序员在语言之间来回移动时的上下文切换要少得多
  • &几乎是 VB 独有的,而+在许多语言中,字符串之间的意思是连接,因此您在可读性方面有所收获。
于 2010-06-09T13:29:06.233 回答
15

我更喜欢&在 VB.NET 中使用字符串连接

这样做的一个原因是为了避免任何混淆,例如

MessageBox.Show(1 & 2) ' "12"
MessageBox.Show(1 + 2) ' 3
于 2010-06-09T13:28:43.127 回答
10

使用 & 更安全,因为您向编译器明确了您的意图(我想连接这两个值,它们都应该转换为字符串)。

如果字符串是数值,则使用 + 可能会导致难以找到错误,至少在选项 strict 关闭的情况下。

例如:

1 + "1" = 2 ' this fails if option strict is on
1 & "1" = 11

编辑:虽然如果你连接一个非字符串,你可能应该使用一些更好的方法。

于 2010-06-09T13:25:54.927 回答
5

我想这是历史原因(非 .NET Visual Basic 使用 &,不知道他们为什么引入 +)和品味问题(我更喜欢 &,因为我们连接字符串,我们不添加它们......)。

于 2010-06-09T13:24:47.373 回答