在.Net内置了两种特殊的引用类型 - Object & String
有关C# String类型究竟是值类型还是引用类型,在很多C#学习者中都或多或少造成过困惑。
string在内存的表示上是引用(如果有C基础就能很好明白),但在实际使用中,.NET把string弄成了值类型。所以不要把string当引用类型看。
.NET中把引用的字符串值类型化的方案是每次对字符串变量赋值,包括字符串相加都是完全开辟新的存储空间给字符串变量使用。所以在使用string类型进行运算时比较消耗资源,此时可以使用stringbuilder类型替代。
string b = "h"; b += "ello";
字符串是不可变的,即:字符串对象在创建后,尽管从语法上看您似乎可以更改其内容,但事实上并不可行。 例如,编写此代码时,编译器实际上会创建一个新字符串对象来保存新的字符序列,且新对象将赋给 b。 然后字符串“h”将适宜于垃圾回收。