C#, string的那些事

string是引用类型,但具有恒等性(其值不能被修改)。

CLR的有驻留机制(堆上保留有散列表),但不适用于动态创建的string,例如string st1 = ""; string st3 = st1 + "Test"; string st2=""+"Test"; st2和st3已经是两个不同的对象了。 

ReferenceEqual是Ojbect的静态构造方法,比较是的引用类型的的变量是否指向同一个对象。

==对于大部分的引用对象,和ReferenceEqual一样。但String重载了它,用于比较它的值是否相等。

==对于值类型变量,比较的是它变量的值。

Equal,string也重载了它,用于比较值。

原文地址:https://www.cnblogs.com/jamesmile/p/2493856.html