2013-09-26 103 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>。这可能对重新使用特定范围中的字符串有用,但不会使整个应用程序范围的实习生池饱和。任何这样的设备都可以定制和特定于应用程序。

相关问题