规则 ID |
DA0001 |
类别 |
.NET Framework 使用 |
分析方法 |
采样 检测 |
消息 |
请考虑使用字符串串联的 StringBuilder |
消息类型 |
警告 |
原因
对 System.String.Concat 的调用在分析数据中占很大比例。请考虑使用 StringBuilder 类根据多个段构造字符串。
规则说明
String 对象是不可改变的。因此,对字符串进行的任何修改都将创建一个新字符串对象并对原始字符串对象进行垃圾回收。无论您是显示调用 String.Concat 还是使用字符串串联运算符(如 + 或 +=),此行为都是相同的。如果频繁调用这些方法(如在紧凑循环中将字符添加到字符串时),则程序性能可能会降低。
StringBuilder 类是一个可变对象,与 System.String 不同,StringBuilder 上大多数修改此类的实例的方法将返回对该相同实例的引用。您可以将字符或附加文本插入到 StringBuilder 实例,以及删除或替换实例中的字符,而无需分配新实例以及删除原始实例。
如何调查警告
双击“错误列表”窗口中的该消息以导航到采样分析数据的函数详细信息视图。查找最频繁使用字符串串联的程序节。对复杂的字符串操作(包括频繁的字符串串联操作)使用 StringBuilder 类。
有关如何安装的更多信息的字符串一起使用,字符串操作 Microsoft Chapter 5 - 提高托管代码性能 Patterns and Practices 库的节中。