public EnumTranslation<T>[] UpdateOrCreateEnumTranslation<T>(EnumTranslation<T>[] translations) where T : struct, IConvertible { var type = typeof(T); if (translations == null && _enumCache.ContainsKey(type)) { translations = (EnumTranslation<T>[])_enumCache[type]; _updateCache.Add(translations); return translations; } if (translations != null && _updateCache.Contains(translations)) return translations; translations = _baseTranslationFactory.UpdateOrCreateEnumTranslation(translations); _enumCache[type] = translations; _updateCache.Add(translations); return translations; }