當執行字符串concatenation of intern pool中的一個現有字符串,是一個新的字符串輸入到實習生池或是一個引用返回到實習生池中的現有字符串?根據這篇文章,String.Concat和StringBuilder會將新字符串實例插入到實習生池中?C#字符串連接和字符串實習
http://community.bartdesmet.net/blogs/bart/archive/2006/09/27/4472.aspx
誰能解釋級聯如何與實習生池的工作?
當執行字符串concatenation of intern pool中的一個現有字符串,是一個新的字符串輸入到實習生池或是一個引用返回到實習生池中的現有字符串?根據這篇文章,String.Concat和StringBuilder會將新字符串實例插入到實習生池中?C#字符串連接和字符串實習
http://community.bartdesmet.net/blogs/bart/archive/2006/09/27/4472.aspx
誰能解釋級聯如何與實習生池的工作?
如果您創建新的字符串,它們將不會自動放入intern池中,除非您將常量編譯時連接在一起,在這種情況下,編譯器將創建一個字符串結果和實例,作爲JIT進程的一部分。
您可以通過調用String.IsInterned
來查看是否有字符串已被禁用。該調用將返回一個新字符串,該字符串是對實參字符串的引用,該字符串等於作爲參數傳遞的字符串,如果該字符串未被實現,則返回null
。