public override T?GetNearestValue(T?value, Direction direction) { if (direction == Direction.None) { throw Exceptions.InvalidArgument(direction, "direction"); } if (!value.HasValue) { return(value); } if (direction != ComparisonRules.Value.Direction) // Opposite direction { if (BaseComparer.ValueRangeInfo.HasMinValue && Equals(value.GetValueOrDefault(), BaseComparer.ValueRangeInfo.MinValue)) { return(null); } } return(BaseComparer.GetNearestValue(value.GetValueOrDefault(), direction)); }
public override T GetNearestValue(T value, Direction direction) => (T)BaseComparer.GetNearestValue(value, direction);
public override T GetNearestValue(T value, Direction direction) { return((T)BaseComparer.GetNearestValue(value, direction)); }
public override Pair <T> GetNearestValue(Pair <T> value, Direction direction) => new Pair <T>(value.First, BaseComparer.GetNearestValue(value.Second, direction));