2013-09-26 101 views
0

我已經閱讀了幾篇文章,但仍然沒有得到字符串實習和字符串池在.NET中的區別。尤其是這些機制一起使用的情況。你能舉一個解釋的例子嗎?在.NET中字符串實習和字符串合併有什麼區別?

+0

只是一個不同的術語? Afaik他們是同義詞。 –

+0

@TimSchmelter也許這聽起來很有趣,但對於J.Richter着名的「CLR via C#」書中的每一種技術,都有兩個不同的章節。閱讀後我看不出有什麼不同,這就是爲什麼在瀏覽網頁後我在這裏發佈這個問題。 –

回答

1

沒有區別,它們只是描述相同事物的替代術語。

考慮下面的語句from here

實習生方法使用實習生池搜索等於str的值的字符串。

注意使用短語「實習生池」,這表明兩個單獨的條款可能是如何出現的相同含義

1

字符串實習內置有利於使用相同的字符串命令行功能實例,當看到相同的字符序列時。這並不適用於所有string實例 - 它僅適用於:通過ldstr IL指令,它被用來創建

  • 字符串時,代碼中包含的文字 - 即Console.WriteLine("abc")(這裏​​是字面被烤成IL,並通過加載ldstr
  • 代碼,明確使用string.Intern方法

這是很難說沒有上下文,但我強烈懷疑「字符串池」只是簡單地用作同義詞「實習」。

請注意,代碼也可以使用私人泳池/實習套裝,例如使用Dictionary<string,string>。這可能對重新使用特定範圍中的字符串有用,但不會使整個應用程序範圍的實習生池飽和。任何這樣的設備都可以定製和特定於應用程序。

相關問題