System.Net.Http.Headers.RangeItemHeaderValue.GetHashCode C# (CSharp) Method

GetHashCode() public method

public GetHashCode ( ) : int
return int
        public override int GetHashCode()
        {
            if (!_from.HasValue)
            {
                return _to.GetHashCode();
            }
            else if (!_to.HasValue)
            {
                return _from.GetHashCode();
            }
            return _from.GetHashCode() ^ _to.GetHashCode();
        }

Usage Example

        public void GetHashCode_UseSameAndDifferentRangeItems_SameOrDifferentHashCodes()
        {
            RangeItemHeaderValue rangeItem1 = new RangeItemHeaderValue(1, 2);
            RangeItemHeaderValue rangeItem2 = new RangeItemHeaderValue(1, null);
            RangeItemHeaderValue rangeItem3 = new RangeItemHeaderValue(null, 2);
            RangeItemHeaderValue rangeItem4 = new RangeItemHeaderValue(2, 2);
            RangeItemHeaderValue rangeItem5 = new RangeItemHeaderValue(1, 2);

            Assert.NotEqual(rangeItem1.GetHashCode(), rangeItem2.GetHashCode());
            Assert.NotEqual(rangeItem1.GetHashCode(), rangeItem3.GetHashCode());
            Assert.NotEqual(rangeItem1.GetHashCode(), rangeItem4.GetHashCode());
            Assert.Equal(rangeItem1.GetHashCode(), rangeItem5.GetHashCode());
        }