Domanda

Quando si esegue la concatenazione di stringhe di una stringa esistente nel pool interno, viene inserita una nuova stringa nel pool interno o viene restituito un riferimento alla stringa esistente nel pool interno?Secondo questo articolo, String.Concat e StringBuilder inseriranno nuove istanze di stringa nel pool interno?

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

Qualcuno può spiegare come funziona la concatenazione con il pool di stagisti?

È stato utile?

Soluzione

Se crei nuove stringhe, queste non verranno automaticamente inserite nel pool interno, a meno che non concateni le costanti in fase di compilazione, nel qual caso il compilatore creerà un risultato di stringa e lo internarà come parte del processo JIT.

Altri suggerimenti

Puoi vedere se una stringa è stata internata chiamando String.IsInterned.La chiamata restituirà una nuova stringa che è un riferimento a una stringa interna uguale alla stringa passata come argomento oppure null se la stringa non fosse internata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top