社区
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";
...全文
164
15
打赏
收藏
大家认为下面的写法那种好,为什么?
1.StringBuilder address = new StringBuilder(); Address.Append("Bangalore"); Address.Append("Delhi"); 2.string address = null; address = "Bangalore" address += "Delhi";
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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. 编写脚本,使用print语句编写脚本在屏幕上显示你名字、年龄、最喜欢的颜色和与你相关的一些事情(背景、兴趣、爱好等等);2. 阅读
下面
的 Python 脚本:#!/usr/bin/env python1 + 2 * 4a) 你
认为
这段脚本是用来做什么的?答:计算b) 你
认为
这段脚本会输出什么?答:空c) 输入以上代 码,并保存为脚本,然后运行它。它所做的与你的预...
SQL Server 存储过程中处理多个查询条件的几种常见
写法
分析,我们该用
那种
写法
本文出处: http://www.cnblogs.com/wy123/p/5958047.html 最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的
写法
时,往往很迷茫, 不知道各种
写法
孰优孰劣,该选用
那种
写法
,以及各种
写法
优缺点,本文以一个简单的查询存储过程为例,简单说一下各种
写法
的区别,以及该用
那种
写法
专业DBA以及熟悉数据库的同学请无视。 废话不多
配置文件 .yml
写法
小结
yaml 是什么? 在 github 一些开源项目里经常可以看到 .travis.yml 文件,后来接触持续集成这个概念时发现很多文件都是 .yml 后缀的文件。我在 阮一峰-YAML 语言教程 里了解了它的作用以及基本
写法
,他的那篇文章描述的略微有点啰嗦,实际看到的大多数配置文件还是及其简单的,而我们要做的是能读懂它们,就像读懂 .json 一样。 yaml 语言(或者说是一种规范吧)可以编写 ...
js问号点操作符【?. 】(可选链 双问号)
1、看
下面
代码 let dataList = res && res.data && res.data.list 看着非常不美观,今天介绍的新语法就是为了解决这种问题的 2、可选链操作符?. 使用新语法重新写一下上面代码 let dataList = res?.data?.list 这样写看着就很简洁了。还有,如果想设置默认值应该怎么写? 以前的
写法
: let dataList = res && res.data || [] 现在的
写法
为什么使用抽象类?有什么好处?
最简单的说法也是最重要的理由:接口和实现分离 老是在想为什么要引用抽象类,一般类不就够用了吗。一般类里定义的方法,子类也可以覆盖,没必要定义成抽象的啊。 看了
下面
的文章,明白了一点。 其实不是说抽象类有什么用,一般类确实也能满足应用,但是现实中确实有些父类中的方法确实没有必要写,因为各个子类中的这个方法肯定会有不同,所以没有必要再父类里写。当然你也可以把抽象类都写成非抽象类,但是这样没有必要。 而...
C#
111,119
社区成员
642,545
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章