public virtual bool Equals()

in messages/csharp/src/Deltix.Timebase.Messages/EPAM.Deltix.Timebase.Messages.Schema/SchemaChangeMessage.cs [474:587]


        public virtual bool Equals(SchemaChangeMessage obj)
        {
            if ((obj == null))
            {
                return false;
            }
            if (((this.PreviousState != null) 
                        && (obj.PreviousState != null)))
            {
                if ((this.PreviousState.Count != obj.PreviousState.Count))
                {
                    return false;
                }
                int i;
                for (i = 0; (i < obj.PreviousState.Count); i = (i + 1))
                {
                    if (((this.PreviousState[i] != null) 
                                && (obj.PreviousState[i] != null)))
                    {
                        if ((this.PreviousState[i].Equals(obj.PreviousState[i]) != true))
                        {
                            return false;
                        }
                    }
                    else
                    {
                        if ((this.PreviousState[i] != obj.PreviousState[i]))
                        {
                            return false;
                        }
                    }
                }
            }
            else
            {
                if ((this.PreviousState != obj.PreviousState))
                {
                    return false;
                }
            }
            if (((this.NewState != null) 
                        && (obj.NewState != null)))
            {
                if ((this.NewState.Count != obj.NewState.Count))
                {
                    return false;
                }
                int i;
                for (i = 0; (i < obj.NewState.Count); i = (i + 1))
                {
                    if (((this.NewState[i] != null) 
                                && (obj.NewState[i] != null)))
                    {
                        if ((this.NewState[i].Equals(obj.NewState[i]) != true))
                        {
                            return false;
                        }
                    }
                    else
                    {
                        if ((this.NewState[i] != obj.NewState[i]))
                        {
                            return false;
                        }
                    }
                }
            }
            else
            {
                if ((this.NewState != obj.NewState))
                {
                    return false;
                }
            }
            if (((this.DescriptorChangeActions != null) 
                        && (obj.DescriptorChangeActions != null)))
            {
                if ((this.DescriptorChangeActions.Count != obj.DescriptorChangeActions.Count))
                {
                    return false;
                }
                int i;
                for (i = 0; (i < obj.DescriptorChangeActions.Count); i = (i + 1))
                {
                    if (((this.DescriptorChangeActions[i] != null) 
                                && (obj.DescriptorChangeActions[i] != null)))
                    {
                        if ((this.DescriptorChangeActions[i].Equals(obj.DescriptorChangeActions[i]) != true))
                        {
                            return false;
                        }
                    }
                    else
                    {
                        if ((this.DescriptorChangeActions[i] != obj.DescriptorChangeActions[i]))
                        {
                            return false;
                        }
                    }
                }
            }
            else
            {
                if ((this.DescriptorChangeActions != obj.DescriptorChangeActions))
                {
                    return false;
                }
            }
            if ((this.Version != obj.Version))
            {
                return false;
            }
            return base.Equals(obj);
        }