c# string类型的一个理解误区
时间:2011-02-19 来源:adu123
我首先想到了,string变量是只读的,每次+都会生成一个新的string对象,这样的话,首先执行string abc="aaa"会在托管堆上分配一块内存存放aaa,然后执行 ”aaa“+”bbb“,又会生成一个新的对象,然后再分配一块内存,随后执行+”ccc“也是一样,呵呵,其实这是错误的。c#编译器对这种操作进行了优化,上面的这种写法会被编译成与string abc="aaabbbccc"相同的代码,并没有额外的分配内存,所以只会在托管堆上分配一块内存存放aaabbbccc,在堆栈上分配一块内存存放引用。
相关阅读 更多 +