与其他reference type不同的是,string是immutable( 不可变更)的。也就是说,一个string类的变量a,如果被赋予一个新的值,那么实际上是在heap中新生成一个string对象,然后令a指向新的对象。所以不会影响其他与a相等的reference(比如例子中的b)。
解决方案 »
- 求用c#开发的Unity3d简单游戏demo在vs上能跑的就行
- 用C# 怎么如何设计一个类似QQ的个性签名输入框
- 把安装软件打成安装包之后刻录到光盘里,怎么让打开光盘的时候自动安装软件呀?
- 数据库里有50条数据,我用的datalist怎么只提取后25条数据?
- 怎么样操作比较快?
- 调用sql语句的问题
- 我写了段生成0-3之间的随机数的代码但是我觉得不太好谁有更好的吗 谢谢了
- 怎么转换时间?
- 怎么连自己的平台都不跨啊!FrameWork2.0编译的程序在frameWork1.1上运行不了!!!
- 100求够简单算法(要最优秀的)
- 在.NET中能否不用COM+实现分布式事务控制?
- C#中如何使用MCI设备?(300分)
string str1, str2;
...
str1 = str2;
return str1;
这两种情况下如果string是valuetype,就必须进行string的copy操作,过于耗时,效率不好。
另外,程序中的大多数string一般只作为常数使用,比如出错信息...,所以将string设成immutable的,可以减少许多内存分配方面的麻烦,况且还有StringBuilder支持带缓冲区分配的字符串处理。