using System; using System.Text; namespace TEngine { /// /// 字符串构建器缓存。 /// 常用于临时构筑。 /// public static class StringBuilderCache { [ThreadStatic] private static StringBuilder _cacheStringBuilder; private const int MaxBuilderSize = 512; /// /// 获取缓存中的字符串构建器。 /// /// 字符串构建器容量。 /// 字符串构建器。 public static StringBuilder Acquire(int capacity = 256) { StringBuilder stringBuilder = _cacheStringBuilder; if (stringBuilder != null && stringBuilder.Capacity >= capacity) { _cacheStringBuilder = null; stringBuilder.Clear(); return stringBuilder; } return new StringBuilder(capacity); } /// /// 获取文本并释放字符串构建器。 /// /// 字符串构建器。 /// 文本实例。 public static string GetStringAndRelease(StringBuilder stringBuilder) { string result = stringBuilder.ToString(); Release(stringBuilder); return result; } /// /// 释放字符串构建器。 /// /// 字符串构建器。 public static void Release(StringBuilder stringBuilder) { if (stringBuilder.Capacity <= MaxBuilderSize) { _cacheStringBuilder = stringBuilder; } } } }