社区
C#
帖子详情
大家认为下面的写法那种好,为什么?
isabel1169
2006-12-01 09:29:28
1.StringBuilder address = new StringBuilder();
Address.Append("Bangalore");
Address.Append("Delhi");
2.string address = null;
address = "Bangalore"
address += "Delhi";
...全文
157
15
打赏
收藏
大家认为下面的写法那种好,为什么?
1.StringBuilder address = new StringBuilder(); Address.Append("Bangalore"); Address.Append("Delhi"); 2.string address = null; address = "Bangalore" address += "Delhi";
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Influence
2006-12-01
打赏
举报
回复
谢:shalen520(Love will keep us alive)
http://www.codeproject.com/useritems/StringBuilder_vs_String.asp
liuxuebest
2006-12-01
打赏
举报
回复
StringBulider对象得append()方法可以被重载,允许传递一个转换成字符串得变量或者各种各样得内置类型得对象
shalen520
2006-12-01
打赏
举报
回复
一次简单的字符串拼接没有必要动用StringBuilder,除非是频繁的拼接
对于StringBuilder和String的性能以及何时使用,下面的文章有非常详细的讨论
http://www.codeproject.com/useritems/StringBuilder_vs_String.asp
Qim
2006-12-01
打赏
举报
回复
如果是大量对字符串进行操作,用第一种是最好的选择。
而仅是用一两次,建议用string。小巧实用。
楼上的已经解释的很清楚了。
bigrongshu
2006-12-01
打赏
举报
回复
两个字符串相加,效率差不多,
很多的话第一种优势明显
buyi2004
2006-12-01
打赏
举报
回复
String 对象串联操作总是用现有字符串和新数据创建新的对象。StringBuilder 对象维护一个缓冲区,以便容纳新数据的串联。如果有足够的空间,新数据将被追加到缓冲区的末尾;否则,将分配一个新的、更大的缓冲区,原始缓冲区中的数据被复制到新的缓冲区,然后将新数据追加到新的缓冲区。
String 或 StringBuilder 对象的串联操作的性能取决于内存分配的发生频率。String 串联操作每次都分配内存,而 StringBuilder 串联操作仅当 StringBuilder 对象缓冲区太小而无法容纳新数据时才分配内存。因此,如果串联固定数量的 String 对象,则 String 类更适合串联操作。这种情况下,编译器甚至会将各个串联操作组合到一个操作中。如果串联任意数量的字符串,则 StringBuilder 对象更适合串联操作;例如,某个循环对用户输入的任意数量的字符串进行串联。
liuxuebest
2006-12-01
打赏
举报
回复
第一个的语法比较通顺,符合编码规范
wangkun9999
2006-12-01
打赏
举报
回复
1
wuda8
2006-12-01
打赏
举报
回复
Tenner(BE.Tenner)
++++++++++++++++++++++++
支持
DeanMonica
2006-12-01
打赏
举报
回复
如果相加的字符串量不多的话就差不多
StringBuilder类是个高效的类,StringBuilder.Append连接字符串的方法是非常快的。用于连接大量的字符串,其速度的优越性就会体现出来。
lxwin01
2006-12-01
打赏
举报
回复
建议使用StringBuilder,统一管理字符串,速度不用说了.你还可以包装StringBuilder如没有Clear方法你进行扩展等.
Ilovesport
2006-12-01
打赏
举报
回复
StringBuilder在比较长的字符连接时比string执行速度快!
pumaadamsjack
2006-12-01
打赏
举报
回复
当然是第一种了,原因第一种StringBuilder类的 adress只开辟一个空间来保存字符串("Bangalore"),接着加上值,就是把这个字符串直接修改了
第二种 address = "Bangalore" 也是一样在内存开辟空间
但是 address += "Delhi"这个就不一样了,它是要在内存中单独开辟空间来保存新的address
string 虽然是引用类型,但是区别于其它引用类型,更类似于值类型
Tenner
2006-12-01
打赏
举报
回复
明显是第一种好,性能是第二种的数十到数百倍
C#里的字符串很特别,对一个已经有值的字符串做任何修改操作,实际上是生成了一个新字符串,因此开销很大
楼主可以试试以下两段代码:
1:
string s = null;
for (int i=1; i<100000; i++)
{
s += "a";
}
2:
StringBuilder sb = new StringBuilder();
for (int i=1; i<100000; i++)
{
sb.Append('a');
}
运行一下看看时间就知道了
小y的CSDN博客
2006-12-01
打赏
举报
回复
StringBuilder 规范
string 简单
python中x=y=z=100语句的
写法
是错误的_python编写脚本练习题
##python test##1..../usr/bin/env python1 + 2 * 4a) 你
认为
这段脚本是用来做什么的?答:计算b) 你
认为
这段脚本会输出什么?答:空c) 输入以上代 码,并保存为脚本,然后运行它。它所做的与你的预...
SQL Server 存储过程中处理多个查询条件的几种常见
写法
分析,我们该用
那种
写法
不知道各种
写法
孰优孰劣,该选用
那种
写法
,以及各种
写法
优缺点,本文以一个简单的查询存储过程为例,简单说一下各种
写法
的区别,以及该用
那种
写法
专业DBA以及熟悉数据库的同学请无视。 废话不多
配置文件 .yml
写法
小结
yaml 是什么? 在 github 一些开源项目里经常可以看到 .travis.yml 文件,后来接触持续集成这个概念时发现很多文件都是 .yml 后缀的文件。我在 阮一峰-YAML 语言教程 里了解了它的作用以及基本
写法
,他的那篇文章...
为什么使用抽象类?有什么好处?
老是在想为什么要引用抽象类,一般类不就够用了吗。一般类里定义的方法,子类也可以覆盖,没必要定义成抽象的啊。 看了
下面
的文章,明白了一点。 其实不是说抽象类有什么用,一般类确实也能满足应用,但是现实中确实...
如何写好状态机?
本篇在引入状态机设计思想的基础上,重点讨论如何写好状态机。由于篇幅比较长,如何写好状态机分成三篇呈现。话不多说,上货。 主要内容预览: 状态机的基本概念; 如何写好状态机; 使用 ...
C#
111,093
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章