Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top