private EditorMember GetElement <T>(List <EditorMember> elements, List <T> source, int index, int id) { if (index >= elements.Count) { var element = EditorMember.WrapIListElement( @elementName: string.Empty, @elementType: typeof(T), @elementId: RuntimeHelper.CombineHashCodes(id, index), @attributes: attributes ); element.InitializeIList(source, index, rawTarget, unityTarget); elements.Add(element); return(element); } try { var e = elements[index]; e.InitializeIList(source, index, rawTarget, unityTarget); return(e); } catch (ArgumentOutOfRangeException) { Log("DictionaryDrawer: Accessing element out of range. Index: {0} Count {1}. This shouldn't really happen. Please report it with information on how to replicate it".FormatWith(index, elements.Count)); return(null); } }
private EditorMember GetElement(int index) { if (index >= _elements.Count) { var element = EditorMember.WrapIListElement( @attributes: _perItemAttributes, @elementName: string.Empty, @elementType: typeof(TElement), @elementId: RuntimeHelper.CombineHashCodes(id, index) ); element.InitializeIList(memberValue, index, rawTarget, unityTarget); _elements.Add(element); return(element); } var e = _elements[index]; e.InitializeIList(memberValue, index, rawTarget, unityTarget); return(e); }