public override int GetHashCode() { int hash = m_Mode.GetHashCode(); switch (m_Mode) { case CallbackMode.NoArg: return(m_CallbackNoArgs.GetHashCode()); case CallbackMode.NativeArg: return(m_CallbackNativeArg.GetHashCode()); case CallbackMode.CastedArg: return(m_CallbackWithCastedArg.GetHashCode()); } return(hash); }