&符号与加连接string在VB.NET

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

例如

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

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

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

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

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

  • 如果您没有使用Option Strict并且有两个数字string,编译器很容易混淆+运算符的含义,算术加法
  • 如果你正在更新很多旧的vb6时代的代码,它不需要转换连接操作符(并记住:我们希望一致性)。

而对于+:

  • 如果你有一个混合的VB / C#店,很高兴只有一个串联运算符。 它使得在语言之间移动代码变得更容易,并且意味着程序员在语言之间来回切换时的上下文切换要less得多
  • &对于VB来说几乎是独一无二的,而string之间的+在许多语言中被理解为意味着连接,所以你在可读性上获得了一些东西。

Micorosoft的偏好是VB程序员使用&的string,NOT +。

您也可以使用+运算符来连接string。 但是,为了消除歧义,您应该使用&运算符。

我更喜欢在VB.NET中使用&来进行string连接

其中一个原因是为了避免混淆,例如

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

使用&更安全,因为你打算清楚编译器的意图(我想连接这两个值,它们都应该转换为string)。

如果string是数值,使用+会导致很难发现错误,至less如果选项strict是closures的。

例如:

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

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

我想这是历史的(非.NET的Visual Basic使用&,不知道为什么他们介绍了+)和味道的问题(我喜欢和因为我们连接string,我们不添加他们…)。