Xamarin Android - 处理StringBuilders

时间:2017-12-05 20:13:13

标签: c# android xamarin stringbuilder allocation

我正在使用字符串构建器来更有效地处理我的信息(通过选择),在打开选项的情况下,它会将其附加到列表中。 我这样做每秒(至少),我想知道,使用StringBuilder.Clear();StringBuilder.Lenght = 0;

更好吗?

我不确定这两者中哪一个有更好的内存管理,我希望有人知道。或者甚至存在差异。

1 个答案:

答案 0 :(得分:1)

Clear()后来(自4.0起)引入Length。这是主要区别。如果您不考虑支持较低的.NET版本,请转到Clear()。 Performancewise Length = 0应该更快,因为Clear()称它为实习生,但它也应该没有太大的区别,特别是如果你每秒只调用一次。避免使用Premature Optimization。我会选择Clear(),因为它更具可读性,并且只在性能关键的情况下使用Length = 0,我用完了其他选项。

这是Microsoft的源代码实现:

// Convenience method for sb.Length=0;
public StringBuilder Clear() {
    this.Length = 0;
    return this;
}

https://referencesource.microsoft.com/#mscorlib/system/text/stringbuilder.cs

Mono正在使用相同的实现。

https://github.com/mono/mono/blob/master/mcs/class/referencesource/mscorlib/system/text/stringbuilder.cs