首页 新闻 搜索 专区 学院

StringBuilder初始化大小时指定大小和不指定大小有什么区别?

0
悬赏园豆:5 [待解决问题]

StringBuilder初始化大小时指定大小和不指定大小有什么区别?

dreamhappy的主页 dreamhappy | 初学一级 | 园豆:4
提问于:2012-05-02 22:18
< >
分享
所有回答(5)
0

如果指定的初始大小合理的话,效率将会高些。

鹤冲天 | 园豆:2379 (老鸟四级) | 2012-05-02 22:24
0

StringBuilder的特点是动态分配内存

太平洋的风 | 园豆:239 (菜鸟二级) | 2012-05-02 23:47
0

同意一楼的,指定的初始大小合理的话,效率将会高些,因为如果不指定初始大小编译器首先会计算因分配的内存大小,然后再分配,这个过程需要时间,反之如果指定,可以节省这段时间。

Halower | 园豆:1723 (小虾三级) | 2012-05-03 06:36
0

指定了大小后,在运行效率上会高很多,这个是一个方面。另外一个方面,当你调用Win32的DLL时,如果接口方法的参数中有字符串的输出(LPSTR),就应该使用StringBuilder这个类型,此时,定义的StringBuilder变量就必须指定大小(为变量初始化内存空间),否则,当DLL内部对变量空间赋值的时候会失败,甚至出现意外,因为外部DLL并不支持StringBuilder这样的数据操作行为。

无之无 | 园豆:5085 (大侠五级) | 2012-05-03 08:21
0

StringBuilder 的容量是实例在任何给定时间可存储的最大字符数,并且大于或等于实例值的字符串表示形式的长度。

如果在初始化 StringBuilder 的实例时没有指定容量或最大容量,则使用特定于实现的默认值

xu_happy_you | 园豆:222 (菜鸟二级) | 2012-05-03 09:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册