在VB.NET中将对象值连接在一起以形成字符串时,在每个对象上使用& concat或+ concat并调用.ToString()之间是否存在性能差异或推荐的最佳实践?
示例(速度更快或最佳实践):
Dim result1 As String = 10 & "em"
Dim result2 As String = 10.ToString() + "em"发布于 2010-06-02 07:41:31
没有性能差异。如果您显式地省略了.ToString()调用,编译器基本上会为您填充该调用。如果你使用了Option Explicit,你将被要求调用这个方法,否则你会得到一个编译错误。我听说过在语义上同时使用&和+的很好的理由,所以这里的选择真的取决于您。
发布于 2010-06-02 07:42:30
我从来没有尝试过,也没有见过两者之间的性能测试,我怀疑它们之间是否真的存在速度差异。我觉得使用第一个选项是更好的做法,因为.ToString()是推断出来的。让语言对你隐藏这个细节,就像你在动态语言中一样。
发布于 2010-06-02 08:22:30
字符串是不可变的-这意味着每次操作字符串时,都会创建一个字符串对象的新实例。
在这些场景中,要获得更好的性能(以及一般的最佳实践),请使用System.Text的StringBuilder类。
在你的例子中(我是一个C#程序员,所以如果我的VB对应物是不正确的,请道歉)
Dim result As StringBuilder() = new StringBuilder()
result.Append("10")
result.Append("em")
Dim resultString As String = result.ToString()只有在调用StringBuilder对象的.ToString()方法时,才会创建该字符串的实例。
您应该习惯使用StringBuilder作为最佳实践。
https://stackoverflow.com/questions/2954087
复制相似问题