in Microsoft.Shared.Dna.Hash/AffineHash.cs [356:379]
public int GetHashCode(string value, int offset, int length)
{
#if CONTRACTS_FULL // Work around the implicit rewrite requirements of Contract.Requires<T>
Contract.Requires<ArgumentNullException>(value != null);
Contract.Requires<ArgumentOutOfRangeException>(offset >= 0);
Contract.Requires<ArgumentOutOfRangeException>(length >= 0);
Contract.Requires<ArgumentOutOfRangeException>(offset + length <= value.Length);
#endif
unsafe
{
fixed (char* valuePointer = value)
{
char* offsetPointer = valuePointer + offset;
if (BitConverter.IsLittleEndian)
{
return this.GetHashCodeLittleEndian(offsetPointer, length);
}
else
{
return this.GetHashCodeBigEndian(offsetPointer, length);
}
}
}
}