public LongVector Intersect(LongVector value) { LongVector first, second; if (this._offset < value._offset) { first = this; second = value; } else { first = value; second = this; } // Not intersect. if ((second._offset + second._length - first._offset) >= (first._length + second._length)) { return(default(LongVector)); } LongVector range; range._offset = second._offset; range._length = Math.Min(first._offset + first._length, second._offset + second._length) - range._offset; return(range); }
public override bool Equals(object obj) { if (!(obj is LongVector)) { return(false); } LongVector vector = (LongVector)obj; return((this._offset == vector._offset) && (this._length == vector._length)); }