在将字符串附加到a时StringBuilder,它的容量和长度是否可以超越它MaxCapacity?
根据MSDN MaxCapacity定义为"字符串生成器实例可以容纳的最大字符数".但是这种行为在以下两个代码片段中不一致:
代码段1:在下面的代码ArgumentOutOfRangeException中,当StringBuilder的长度超过其MaxCapacity时抛出 - 这是预期的.
String str = sb.ToString();
StringBuilder sb1 = new StringBuilder(3, 5);
sb1.Append("1"); //no error as Length 1 <= max limit 5
sb1.Append("12"); //no error as Length 3 <= max limit 5
sb1.Append("123"); //ArgumentOutOfRangeException Thrown as Length 6 > max limit 5
Run Code Online (Sandbox Code Playgroud)
代码段2:在下面的代码中,ArgumentOutOfRangeException当StringBuilder的长度超过其MaxCapacity时,抛出NO - 此行为似乎不正确.
StringBuilder sb = new StringBuilder(3, 5);
sb.Append("1"); //no error as Length 1 <= max limit 5
sb.Append("2"); //no error as Length 2 <= …Run Code Online (Sandbox Code Playgroud)