程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Visual Studio 2010中,StringBuilder.EnsureCapacity()規則變了嗎?

Visual Studio 2010中,StringBuilder.EnsureCapacity()規則變了嗎?

編輯:關於.NET

記得以前的規則是“翻倍補余”。

當申請增加容量時,EnsureCapacity()函數不管三七二十一,先將字符串容量加倍,如果加倍後的容量大於申請容量,則加倍後的容量即為新容量;如果加倍後的容量仍小於申請容量,則申請容量為新容量。

以前:

StringBuilder buffer = new StringBuilder("Hello Kitty!"); //容量為16
buffer.EnsureCapacity(28); //請求把容量增加到28
Console.WriteLine("Length = {0}", buffer.Length);
Console.WriteLine("Capacity = {0}", buffer.Capacity);

結果為:

現在,現在同樣的程序,

StringBuilder buffer = new StringBuilder("Hello Kitty!"); //容量為16
buffer.EnsureCapacity(28); //請求把容量增加到28 
Console.WriteLine("Length = {0}", buffer.Length);
Console.WriteLine("Capacity = {0}", buffer.Capacity);

結果為:

申請多少,就是多少。

規則發生變化了嗎?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved