public bool Equals(NullableKey <TKey> x, NullableKey <TKey> y) { return((comparer != null) ? comparer.Equals(x.Value, y.Value) : object.Equals(x.Value, y.Value)); }
public int GetHashCode(NullableKey <TKey> obj) { return((comparer != null) ? comparer.GetHashCode(obj.Value) : (obj != null && obj.Value != null) ? obj.Value.GetHashCode() + 1 : 0); }
public TValue this[TKey key] { get { return(dict[NullableKey.Create(key)]); } set { dict[NullableKey.Create(key)] = value; } }
public bool TryGetValue(TKey key, out TValue value) { return(dict.TryGetValue(NullableKey.Create(key), out value)); }
public bool Remove(TKey key) { return(dict.Remove(NullableKey.Create(key))); }
public bool ContainsKey(TKey key) { return(dict.ContainsKey(NullableKey.Create(key))); }
public void Add(TKey key, TValue value) { dict.Add(NullableKey.Create(key), value); }