首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ToString()和串联之间的最佳实践或性能差异

ToString()和串联之间的最佳实践或性能差异
EN

Stack Overflow用户
提问于 2010-06-02 07:35:47
回答 4查看 878关注 0票数 1

在VB.NET中将对象值连接在一起以形成字符串时,在每个对象上使用& concat或+ concat并调用.ToString()之间是否存在性能差异或推荐的最佳实践?

示例(速度更快或最佳实践):

代码语言:javascript
复制
Dim result1 As String = 10 & "em"
Dim result2 As String = 10.ToString() + "em"
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-02 07:41:31

没有性能差异。如果您显式地省略了.ToString()调用,编译器基本上会为您填充该调用。如果你使用了Option Explicit,你将被要求调用这个方法,否则你会得到一个编译错误。我听说过在语义上同时使用&和+的很好的理由,所以这里的选择真的取决于您。

票数 4
EN

Stack Overflow用户

发布于 2010-06-02 07:42:30

我从来没有尝试过,也没有见过两者之间的性能测试,我怀疑它们之间是否真的存在速度差异。我觉得使用第一个选项是更好的做法,因为.ToString()是推断出来的。让语言对你隐藏这个细节,就像你在动态语言中一样。

票数 1
EN

Stack Overflow用户

发布于 2010-06-02 08:22:30

字符串是不可变的-这意味着每次操作字符串时,都会创建一个字符串对象的新实例。

在这些场景中,要获得更好的性能(以及一般的最佳实践),请使用System.TextStringBuilder类。

在你的例子中(我是一个C#程序员,所以如果我的VB对应物是不正确的,请道歉)

代码语言:javascript
复制
Dim result As StringBuilder() = new StringBuilder()
result.Append("10")
result.Append("em")
Dim resultString As String = result.ToString()

只有在调用StringBuilder对象的.ToString()方法时,才会创建该字符串的实例。

您应该习惯使用StringBuilder作为最佳实践。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2954087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档