4

When performing string concatentation of an existing string in the intern pool, is a new string entered into the intern pool or is a reference returned to the existing string in the intern pool? According to this article, String.Concat and StringBuilder will insert new string instances into the intern pool?

http://community.bartdesmet.net/blogs/bart/archive/2006/09/27/4472.aspx

Can anyone explain how concatenation works with the intern pool?

Marek Židek
  • 809
  • 1
  • 15
  • 31
Sean Chambers
  • 8,572
  • 7
  • 41
  • 55

2 Answers2

4

If you create new strings, they will not automatically be put into the intern pool, unless you concatenate constants compile-time, in which case the compiler will create one string result and intern that as part of the JIT process.

Lasse V. Karlsen
  • 380,855
  • 102
  • 628
  • 825
0

You can see whether a string has been interned by calling String.IsInterned. The call will return a new string that is either a reference to an interned string equal to the string that was passed as an argument, or null if the string was not interned.

Konrad Rudolph
  • 530,221
  • 131
  • 937
  • 1,214