.NET中的字符串和字符串生成器有什么区别?字符串和字符串生成器
回答
字符串是不可变的类型。在执行像串联这样的字符串操作的批次时,它具有不良性能特征。
另一方面,Stringbuilders通过保持一个增长的缓冲区来克服这个弱点,以便每个级联不太可能需要分配一个新的字符串。
由于字符串构建器会添加一些开销,所以在进行一些重要的字符串工作时(例如在循环中),它们才真正需要。如果你的代码很快,不要担心。如果不是,请使用一个分析器来查看这个问题在你的案例中是否重要。
最后一点:这个答案实际上与ASP.NET毫无关系 - 对于.net和其他很多语言的字符串也是如此。
我认为你的最后一段实际上比所有'真正'的答案都重要。 – ProfK 2010-01-04 05:36:36
http://en.csharp-online.net/CSharp_String_Theory%E2%80%94String_vs._StringBuilder
基本上String
s为不可变的 - 你操纵每次一个是需要在内存中创建。 StringBuilder
在处理重复字符串连接和其他操作操作时,在内存和几乎所有情况下都更容易。
您可以在此SO帖子中找到一些更好的讨论:String vs. StringBuilder。
字符串是immutable和stringbuilder是可变的。
在面向对象和功能 编程,一个不可变的对象是 对象,其状态被创建后不能被修改 。这是 与可变对象的对比,其中 可以在创建后进行修改。
不可变对象通常是有用的 因为 复制和一些比较昂贵的操作可以被省略,简化 程序代码和 加速执行。但是,如果对象包含大量可更改数据,则使对象不可变通常为 。 因此,许多语言都允许 用于不可变和可变的 对象。
每次对字符串对象进行连接时,会使用新的引用创建新的字符串对象,并将其分配给该对象。较旧的对象仍然会在内存中。
- 1. 字符串生成器和字典
- 2. 将字符串生成器拆分为字符串字符串特定字符
- 3. 字符串和字符串生成器之间的差异
- 4. 问题与java字符串和字符串生成器
- 5. 生成字符串
- 6. 生成字符串
- 7. 生成字符串
- 8. 字符串生成器VS串
- 9. 大字符串字符串生成器缺点
- 10. 字符串连接VS字符串生成器追加
- 11. 如何分隔字符串生成器中的字符串?
- 12. 将字符串生成器转换为json字符串
- 13. 字符串连接vs字符串生成器。性能
- 14. 字符串生成器vs字符串连接
- 15. 比较两个字符串字符串生成器
- 16. 创建字符串生成器而不是字符串数组
- 17. tcpdf在字符串和字符串生成平方
- 18. 生成一个字符串
- 19. 生成随机字符串
- 20. 生成列表字符串
- 21. PHP - 生成字符串
- 22. 生成查询字符串
- 23. 熊猫生成字符串
- 24. 生成字符串中的
- 25. 生成协议字符串
- 26. 生成excel表字符串
- 27. Java中的反向字符串不使用任何临时字符串,字符或字符串生成器
- 28. RandomStringGenerator生成字母数字字符串
- 29. 生成的字母数字字符串
- 30. 字符串生成器vs列表
可能的重复http://stackoverflow.com/questions/529999/when-to-use-stringbuilder – 2010-04-01 11:20:57
可能重复的[字符串与StringBuilder](http://stackoverflow.com/questions/73883/string- vs-stringbuilder) – nawfal 2014-07-16 20:15:15