Reputation: 8680
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?
Upvotes: 4
Views: 1531
Reputation: 545588
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.
Upvotes: 0
Reputation: 391336
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.
Upvotes: 4