public IModifiedType MakeModified(TypeModification[] modifiers) { IModifiedType result; lock (typeModifiedCache) { TypeModifierSetEntry entry; if (!typeModifiedCache.TryObtainConstruct(entry = new TypeModifierSetEntry(modifiers), out result)) { typeModifiedCache.RegisterConstruct(entry, result); } } return(result); }
public IModifiedType MakeModified(TypeModification[] modifiers) { IModifiedType result; lock (this.syncObject) { this.CacheCheck(); var modifiedTypeKey = new TypeModifierSetEntry(modifiers); if (!this.modifiedTypeCache.TryObtainConstruct(modifiedTypeKey, out result)) { this.modifiedTypeCache.RegisterConstruct(modifiedTypeKey, result = new ModifiedType(this, modifiers)); } } return(result); }