Dar*_*kas 3 .net c# stringbuilder capacity
为什么StringBuilder的默认容量是16个字符?这是某种优化吗?
StringBuilder builder = new StringBuilder();
Console.WriteLine("builder capacity: '{0}'", builder.Capacity);
Run Code Online (Sandbox Code Playgroud)
输出:
builder capacity: '16'
Run Code Online (Sandbox Code Playgroud)
如果初始化 StringBuilder 实例时未指定容量或最大容量,则使用特定于实现的默认值。
他们无法真正优化任何东西,因为它完全取决于使用情况,因此他们让您在构造函数中指定容量,这样您就可以自己优化它。如果您没有指定任何内容,他们会纯粹出于相当安全的猜测而添加一些内容,即使您没有指定任何内容,您也需要一些容量。
列表也是如此。他们不知道您想要多少个项目,也不知道您的应用程序中列表平均包含多少个项目。它们公开了容量,因此您可以强制列表大小达到一定程度,以防止其过于频繁地增长。StringBuilder在这种情况下没有什么不同。
| 归档时间: |
|
| 查看次数: |
2656 次 |
| 最近记录: |