string可以说是.net中的非常特殊的一员,它也是.net中使用最频繁,应用最广泛的基本类型之一。
string有三大特性:
1.应用上,string类型表现为值类型;内存中,string类型表现为引用类型,存储在托管堆中。它被称为特殊的引用类型。
2.字串串具有恒定性,一经创建就不能改变。具体而言,字符串一旦被创建,就会在托管堆上分配一块连续的内存空间,我们对其的任何改变都不会影响到原来的string对象,而是会重新创建出新的string对象。
3.字符串驻留机制。对于相同的字符串,CLR不会为其分配内存空间,而是共享同一内存。我们可以手动启用字符串驻留机制:Intern(string str)。
而字符串的第二条特性严重影响的其性能。接下来我们给出一条c#性能优化技术:当我们对同一个字符串进行大量操作时,请用StringBuilder。随着对字符串操作的增多,你会发现它们的性能根本就不在一个数量级上。
今日c#性能优化明星:StringBuilder.
优化指数:99