/// <summary> /// Initializes a new instance of the <see cref="Symbol"/> class. /// </summary> /// <param name="module">The module.</param> public Symbol(Module module) { Module = module; fields = SimpleCache.Create(() => GetFields().ToArray()); baseClasses = SimpleCache.Create(() => GetBaseClasses().ToArray()); elementType = SimpleCache.Create(() => GetElementType()); pointerType = SimpleCache.Create(() => GetPointerType()); enumValues = SimpleCache.Create(() => GetEnumValues().ToArray()); namespaces = SimpleCache.Create(() => SymbolNameHelper.GetSymbolNamespaces(Name)); userType = SimpleCache.Create(() => (UserType)null); }
/// <summary> /// Initializes a new instance of the <see cref="Symbol"/> class. /// </summary> /// <param name="module">The module.</param> public Symbol(Module module) { Module = module; fields = SimpleCache.CreateStruct(() => GetFields().ToArray()); baseClasses = SimpleCache.CreateStruct(() => GetBaseClasses().ToArray()); elementType = SimpleCache.CreateStruct(() => GetElementType()); pointerType = SimpleCache.CreateStruct(() => GetPointerType()); enumValues = SimpleCache.CreateStruct(() => GetEnumValues().ToArray()); enumValuesByValue = SimpleCache.CreateStruct(() => { Dictionary <string, string> values = new Dictionary <string, string>(); foreach (var kvp in EnumValues) { if (!values.ContainsKey(kvp.Item2)) { values.Add(kvp.Item2, kvp.Item1); } } return(values); }); namespaces = SimpleCache.CreateStruct(() => SymbolNameHelper.GetSymbolNamespaces(Name)); userType = SimpleCache.CreateStruct(() => (UserType)null); }