public Cache <T> RegisterTypeCache <T>(Action <T> cleaner) { Cache <T> cache = new CacheImpl <T>(cleaner, 0); this.caches.Add(typeof(T), cache); return(cache); }
public T[] GetInstanceArray(int length) { CacheImpl <T[]> impl; if (!this.elementsCountToArrayCache.TryGetValue(length, out impl)) { impl = new CacheImpl <T[]>(this.cleaner, length); this.elementsCountToArrayCache.Add(length, impl); } return(impl.GetInstance()); }