&符号与加连接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,我们不添加他们…)。