public override int GetHashCode ()
{
if (cachedHashCode == 0) {
CultureInfo inv = CultureInfo.InvariantCulture;
if (isAbsoluteUri) {
cachedHashCode = scheme.ToLower (inv).GetHashCode ()
^ host.ToLower (inv).GetHashCode ()
^ port
#if NET_2_0
^ query.GetHashCode ()
#else
^ query.ToLower (inv).GetHashCode ()
#endif
^ path.GetHashCode ();
}
else {
cachedHashCode = source.GetHashCode ();
}
}
return cachedHashCode;
}