Ampersand vs plus用于在VB.NET中连接字符串

时间:2010-06-09 13:21:30

标签: vb.net string-concatenation

在VB.NET中,使用&连接字符串而不是+是否有任何好处?

例如

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

VS

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

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

5 个答案:

答案 0 :(得分:40)

我听到了有利于两家运营商的良好,强有力的论据。哪一个赢得胜利的主要取决于你的情况。我可以说的一件事是你应该在一个或另一个上标准化。混合这两者的代码后来要求混淆。

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

  • 如果你没有使用Option Strict并且有两个数字字符串,那么编译器很容易混淆+运算符的含义,你知道,算术加法
  • 如果您正在更新许多较旧的vb6时代代码,则无需转换连接运算符(并记住:我们需要一致性)。

对于+

  • 如果你有一个混合的vb / C#商店,那么只有一个连接运算符是很好的。它使得在语言之间移动代码变得更容易,并且意味着程序员在语言之间来回移动时更少的上下文切换
  • &几乎是VB独有的,而字符串之间的+在许多语言中被理解为连接,因此您可以获得一些可读性。

答案 1 :(得分:40)

Micorosoft的preference适用于VB程序员使用&对于字符串,不是+。

  

您也可以使用+运算符来连接字符串。但是,要消除歧义,你应该使用&而不是运营商。

答案 2 :(得分:12)

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

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

MessageBox.Show(1 & 2) ' "12"
MessageBox.Show(1 + 2) ' 3

答案 3 :(得分:10)

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

如果字符串是数值,使用+会导致难以发现错误,至少如果禁用选项strict。

例如:

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

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

答案 4 :(得分:5)

我认为它是历史的(非.NET Visual Basic使用&amp ;,不确定为什么他们引入了+)和品味问题(我更喜欢&因为我们连接字符串,我们不添加它们...... )。