/************************************************************************************************************************/ /// <summary> /// Calls <see cref="ObjectPool{T}.Release"/> to add the `item` to the list of spares so it can be reused. /// </summary> public static void Release <T>(T item) where T : class, new() => ObjectPool <T> .Release(item);
/// <summary> /// Calls <see cref="ObjectPool{T}.Release"/> to clear the `list` and mark it as a spare /// so it can be later returned by <see cref="AcquireList"/>. /// </summary> public static void Release <T>(List <T> list) { list.Clear(); ObjectPool <List <T> > .Release(list); }
/// <summary> /// Calls <see cref="ObjectPool{T}.Acquire"/> to get a spare item if there are any, or create a new one. /// </summary> /// <remarks>Remember to <see cref="Release{T}(T)"/> it when you are done.</remarks> public static void Acquire <T>(out T item) where T : class, new() => item = ObjectPool <T> .Acquire();
/************************************************************************************************************************/ /// <summary> /// Calls <see cref="ObjectPool{T}.Acquire"/> to get a spare item if there are any, or create a new one. /// </summary> /// <remarks>Remember to <see cref="Release{T}(T)"/> it when you are done.</remarks> public static T Acquire <T>() where T : class, new() => ObjectPool <T> .Acquire();
/// <summary> /// Sets <see cref="StringBuilder.Length"/> = 0 and <see cref="ObjectPool{T}.Release"/> to mark it as a spare /// so it can be later returned by <see cref="AcquireStringBuilder"/>. /// </summary> public static void Release(StringBuilder builder) { builder.Length = 0; ObjectPool <StringBuilder> .Release(builder); }
/// <summary> /// Calls <see cref="ObjectPool{T}.Release"/> to clear the `set` and mark it as a spare /// so it can be later returned by <see cref="AcquireSet"/>. /// </summary> public static void Release <T>(HashSet <T> set) { set.Clear(); ObjectPool <HashSet <T> > .Release(set); }
/************************************************************************************************************************/ protected override void Release() => ObjectPool <Curve> .Release(this);