小编man*_*juv的帖子

StringBuilder:StringBuilder的长度和容量可以超过其MaxCapacity

在将字符串附加到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)

.net c# string stringbuilder

5
推荐指数
1
解决办法
5315
查看次数

标签 统计

.net ×1

c# ×1

string ×1

stringbuilder ×1