public GraphOverridableItem(T item, int declarationOrder, GraphOverridableItem <T> baseItem = null) { item.ThrowOnNull(nameof(item)); Item = item; Base = baseItem; DeclarationOrder = declarationOrder; }
public void Add(string key, T value, int declarationOrder) { if (TryGetValue(key, out GraphOverridableItem <T> existingValue)) { if (!existingValue.Item.Equals(value)) { base[key] = new GraphOverridableItem <T>(value, declarationOrder, existingValue); } } else { Add(key, new GraphOverridableItem <T>(value, declarationOrder)); } }