如果指定的初始大小合理的话,效率将会高些。
StringBuilder的特点是动态分配内存
同意一楼的,指定的初始大小合理的话,效率将会高些,因为如果不指定初始大小编译器首先会计算因分配的内存大小,然后再分配,这个过程需要时间,反之如果指定,可以节省这段时间。
指定了大小后,在运行效率上会高很多,这个是一个方面。另外一个方面,当你调用Win32的DLL时,如果接口方法的参数中有字符串的输出(LPSTR),就应该使用StringBuilder这个类型,此时,定义的StringBuilder变量就必须指定大小(为变量初始化内存空间),否则,当DLL内部对变量空间赋值的时候会失败,甚至出现意外,因为外部DLL并不支持StringBuilder这样的数据操作行为。
StringBuilder 的容量是实例在任何给定时间可存储的最大字符数,并且大于或等于实例值的字符串表示形式的长度。
如果在初始化 StringBuilder 的实例时没有指定容量或最大容量,则使用特定于实现的默认值