字符串的不变性如何帮助字符串实习?

Nar*_*dra 0 c# string immutability

这个问题的答案提到immutablestring有助于实现字符串实习的特征.

任何人都可以解释一下,不可改变的特性有助于实现实习吗?

Jon*_*eet 5

如果String是一个可变类型,它根本无法实现.如果它们可以被变异,那么保留一个对象池是没有意义的......你将无法依赖你从池中得到的是你感兴趣的字符串(至少在你使用它的时候) .

想像:

string x = "foo";
string y = "foo";
// x and y are references to the same object...

x.MutateTo("bar"); // This doesn't change which object y refers to...
Console.WriteLine(y); // This would have to print "bar" - eek!
Run Code Online (Sandbox Code Playgroud)