C#字符串串联和字符串实习

时间:2020-03-05 18:46:00  来源:igfitidea点击:

在对intern池中的现有字符串进行字符串连接时,是将新字符串输入到intern池中,还是将引用返回给intern池中的现有字符串?根据本文的介绍,String.Concat和StringBuilder会将新的字符串实例插入内部池吗?

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

谁能解释串联如何与实习池一起使用?

解决方案

回答

如果创建新字符串,除非将常量编译时串联在一起,否则它们将不会自动放入内部缓冲池,在这种情况下,编译器将创建一个字符串结果,并将其作为JIT流程的一部分进行内部处理。

回答

我们可以通过调用String.IsInterned来查看是否已对字符串进行了实习。调用将返回一个新字符串,该字符串是对等于作为参数传递的字符串的插入字符串的引用,如果未插入该字符串,则返回" null"。