public T GetCached(TKey key) { if (activeCached.TryGetValue(key, out var value)) { unused.Remove(key); return(value); } return(activeCached[key] = Constructor.CreateForKey(key)); }