StringBuilder在调用ToString时是否会缓存字符串?例如,这段代码会创建两个不同的内存字符串吗,还是只使用一个:
它会缓存连续的读取操作结果吗?
var sb = new StringBuilder();
sb.Append("foo");
sb.Append("bar");
var str1 = sb.ToString();
var str2 = sb.ToString();
它会缓存连续的读取操作结果吗?
ReferenceEquals(str1, str2)
即可。 - René VogtToString
的实现:https://referencesource.microsoft.com/#mscorlib/system/text/stringbuilder.cs - Pikoh