在此代码中,我尝试appendFormat
一条长度大于字符串构建器容量的消息:
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder(10);
sb.AppendFormat("1234567890123"); // 13 characters
Console.WriteLine(sb.Capacity);
}
你知道输出应该是什么(在底部回答)?
好的,让我们尝试更改此代码并使用容量初始化StringBuilder
,但仍然小于字符串长度,例如12:
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder(12);
sb.AppendFormat("1234567890123"); // 13 characters
Console.WriteLine(sb.Capacity);
}
所以,我的问题是:如果无法追加字符串,AppendFormat
真的double
StringBuilder
的起始容量是否真的Capacity
?如果附加的字符串长度应为24个字符,那么48
将变为{{1}}?
输出代码: 20 &的 24
答案 0 :(得分:3)
如果无法追加字符串,AppendFormat是否会使StringBuilder的启动容量加倍?
是 - see here。
每当append操作导致StringBuilder对象的长度超过其容量时,其现有容量将加倍并且Append操作成功。