共用方式為


DA0001:使用 StringBuilder 進行串連

規則 ID

DA0001

分類

.NET Framework 使用

程式碼剖析方法

取樣

檢測

訊息

考慮使用 StringBuilder 來進行字串串連

訊息類型

警告

原因

呼叫 System.String.Concat 佔用程式碼剖析資料相當大的百分比。 請考慮使用 StringBuilder 類別從多個區段建構字串。

規則描述

String 物件是不可變動的。 因此,字串的任何修改都會建立新的字串物件和原始字串的記憶體回收。 無論您是明確呼叫 String.Concat,或是使用如 + 或 += 的字串串連運算子,這個行為都會是相同的。 如果經常呼叫這些方法,例如在緊密迴圈中將字元加入字串,便會降低程式效能。

StringBuilder 類別是可變動的物件,而且不同於 System.String,在 StringBuilder 上修改此類別之執行個體的大多數方法,都會傳回相同執行個體的參考。 您可以對 StringBuilder 執行個體插入字元或附加文字,以及移除或取代執行個體中的字元,而不需要配置新的執行個體和刪除原始的執行個體。

如何調查警告

按兩下 [錯誤清單] 視窗中的訊息,即可巡覽至取樣程式碼剖析資料的函式詳細資料檢視。 尋找最常使用字串串連之程式的區段。 使用 StringBuilder 類別進行複雜的字串操作,包括頻繁的字串串連作業。

如需如何使用字串的詳細資訊,請參閱 Microsoft Patterns and Practices 文件庫中第 5 章 - 改進 Managed 程式碼效能 (英文) 的一節。