public int GetHashCode(NullableKey <T> obj) { return(_valueComparer == null?obj.GetHashCode() : _valueComparer.GetHashCode(obj.Value)); }
public bool Equals(NullableKey <T> x, NullableKey <T> y) { return(_valueComparer == null?x.Equals(y) : _valueComparer.Equals(x.Value, y.Value)); }
public int CompareTo(NullableKey <T> other) { return(Comparer <NullableKey <T> > .Default.Compare(this, other)); }
public int Compare(NullableKey <T> x, NullableKey <T> y) { return(_valueComparer == null?x.CompareTo(y) : _valueComparer.Compare(x.Value, y.Value)); }
public bool Equals(NullableKey <T> that) { return(CouldBeNull ? Equals(_value, that._value) : _value.Equals(that._value)); }