0

このコード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本当にありますか? 追加された文字列の長さが 24 文字の場合、 ? は?になります。doubleStringBuilderCapacity48

出力コード: 20 & 24

4

1 に答える 1

3

文字列を追加できなかった場合、AppendFormat は本当に StringBuilder の開始容量を 2 倍にしますか?

はい -ここを参照してください

追加操作によって StringBuilder オブジェクトの長さがその容量を超えると、既存の容量が 2 倍になり、追加操作は成功します。

于 2013-08-19T21:13:39.133 に答える