Concaténation de chaînes C# et internement de chaînes
Question
Lors de la concaténation de chaînes d'une chaîne existante dans le pool interne, une nouvelle chaîne est-elle entrée dans le pool interne ou une référence est-elle renvoyée à la chaîne existante dans le pool interne ?D'après cet article, String.Concat et StringBuilder inséreront de nouvelles instances de chaîne dans le pool interne ?
http://community.bartdesmet.net/blogs/bart/archive/2006/09/27/4472.aspx
Quelqu'un peut-il expliquer comment fonctionne la concaténation avec le pool interne ?
La solution
Si vous créez de nouvelles chaînes, elles ne seront pas automatiquement placées dans le pool interne, sauf si vous concaténez des constantes au moment de la compilation, auquel cas le compilateur créera un résultat de chaîne et l'interne dans le cadre du processus JIT.
Autres conseils
Vous pouvez voir si une chaîne a été internée en appelant String.IsInterned
.L'appel renverra une nouvelle chaîne qui est soit une référence à une chaîne interne égale à la chaîne qui a été passée en argument, soit null
si la chaîne n'a pas été internée.