public override void Compare(MessageBase msg) { var m = (ComplexMessage)msg; if (m_msg == null) { A(m_msg == m.m_msg); } else { m_msg.Compare(m.m_msg); } if (m_sealedClass == null) { A(m_sealedClass == m.m_sealedClass); } else { m_sealedClass.Compare(m.m_sealedClass); } if (m_abstractMsg == null) { A(m_abstractMsg == m.m_abstractMsg); } else { ((SimpleClass)m_abstractMsg).Compare((SimpleClass)m.m_abstractMsg); } if (m_ifaceMsg == null) { A(m_ifaceMsg == m.m_ifaceMsg); } else { ((SimpleClass2)m_ifaceMsg).Compare((SimpleClass2)m.m_ifaceMsg); } }