2011-12-15 13 views
2

なぜStringBuilderのデフォルト容量は16文字ですか?これはある種の最適化ですか?StringBuilderのデフォルト容量は16文字ですのはなぜですか?

StringBuilder builder = new StringBuilder(); 
Console.WriteLine("builder capacity: '{0}'", builder.Capacity); 

出力:のStringBuilderのインスタンスが初期化されるときに何容量または最大容量が指定されていない場合

builder capacity: '16' 
+0

関連する質問を参照してください:http://stackoverflow.com/q/246211/25727 – Jan

+2

それは問題ですか?私は誰かが妥当な数を選んだと賭けても構わないと思う。 – Bernard

+2

私の質問の主要な部分はなぜですか? –

答えて

4

実装固有のデフォルト値が使用されています。

Straight from the MSDN docs.

それは、使用に完全に依存して彼らは本当に彼らはあなたがコンストラクタで容量を指定できますので、あなたはそれを自分で最適化することができ、したがって、何かを最適化することはできません。彼らはあなたが何かを指定していない場合でもの容量を純粋に安全な推測で指定しないと何かを入れます。

リストも同様です。彼らは、あなたのアプリにどれだけのアイテムが含まれているのか、リストに平均で何アイテムが含まれているのかは分かりません。彼らは容量を公開するので、リストのサイズをあまり大きくならないようにすることができます。この場合、StringBuilderは変わりません。

関連する問題