public override long hash()
{
int hash = 0;
IDictionaryEnumerator en = m_map.GetEnumerator();
while (en.MoveNext())
{
object key = en.Key;
object val = en.Value;
hash += key.GetHashCode() ^ (val == null ? 0 : val.GetHashCode());
}
return hash;
}