public V this[K key] { get { return(myMap[key]); } set { V oldval; bool isUpdate = myMap.TryGetValue(key, out oldval); if (isUpdate && Equals(oldval, value)) { return; } myMap[key] = value; // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression if (isUpdate) { myChange.Fire(MapEvent <K, V> .Update(key, oldval, value)); } else { myChange.Fire(MapEvent <K, V> .Add(key, value)); } } }
public void Advise(Lifetime lifetime, Action <MapEvent <K, V> > handler) { foreach (var kv in this) { try { handler(MapEvent <K, V> .Add(kv.Key, kv.Value)); } catch (Exception e) { Log.Root.Error(e); } } myChange.Advise(lifetime, handler); }
public void Add(TK key, TV value) { myStorage.Add(key, value); myChange.Fire(MapEvent <TK, TV> .Add(key, value)); }
public void Add(K key, V value) { myMap.Add(key, value); myChange.Fire(MapEvent <K, V> .Add(key, value)); }