在字符串上使用+ =的任何问题

ast*_*boy 1 c#

正如标题所示,是否有任何理由我不应该执行以下操作来将某些内容添加到字符串的末尾:

string someString = "test";
someString += "Test";
Run Code Online (Sandbox Code Playgroud)

Mir*_*Mir 6

如果做了一次,这没什么大不了的.获取两个字符串的内容,创建并分配新字符串someString.如果多次执行上述操作(例如,在循环中),则存在问题.对于每次执行,您将在堆中分配一个新对象,即一个新的字符串实例.这就是为什么最好使用基于缓冲区的类型,例如StringBuilder,如果必须多次将内容附加到字符串.

  • +1.@millimoose,GC正在快速完成它的工作,但它仍然比完全不做任何工作慢.如果代码看起来大致相同,我认为没有理由明确避免使用`StringBuilder`(或潜在的Stream/Writer类). (2认同)