c# – String.Intern有值吗?
作者:互联网
String.Intern有一个特殊的字符串池,以后可以检索它.
有没有办法让我知道指定的字符串是从池中获取的,并且是否是新创建的?
例如:
string s1 = "MyTest";
string s2 = new StringBuilder().Append("My").Append("Test").ToString();
string s3 = String.Intern(s2);
Console.WriteLine((Object)s2==(Object)s1); // Different references.
Console.WriteLine((Object)s3==(Object)s1); // The same reference.
s3 ref val取自游泳池
有什么办法让我知道吗?
解决方法:
您可能对IsInterned方法有好运,如果字符串未被实现则返回null,如果从池中获取,则返回引用.但是,此行为将取决于运行时,并且可能无法产生您期望的结果.
标签:c,net,string-interning 来源: https://codeday.me/bug/20190715/1470450.html