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 程式碼效能 (英文) 的一節。