diff --git a/OpenRA.Game/TraitDictionary.cs b/OpenRA.Game/TraitDictionary.cs index b8fa17ef1b..891ac5c055 100644 --- a/OpenRA.Game/TraitDictionary.cs +++ b/OpenRA.Game/TraitDictionary.cs @@ -36,19 +36,14 @@ namespace OpenRA class TraitDictionary { - // construct this delegate once. - static Func doCreateTraitContainer = CreateTraitContainer; - static ITraitContainer CreateTraitContainer(Type t) - { - return (ITraitContainer)typeof(TraitContainer<>).MakeGenericType(t) - .GetConstructor(Type.EmptyTypes).Invoke(null); - } + static readonly Func CreateTraitContainer = t => + (ITraitContainer)typeof(TraitContainer<>).MakeGenericType(t).GetConstructor(Type.EmptyTypes).Invoke(null); - Dictionary traits = new Dictionary(); + readonly Dictionary traits = new Dictionary(); ITraitContainer InnerGet(Type t) { - return traits.GetOrAdd(t, doCreateTraitContainer); + return traits.GetOrAdd(t, CreateTraitContainer); } TraitContainer InnerGet()