示例#1
0
        public int CompareTo(State <T> other)
        {
            if (ReferenceEquals(this, other))
            {
                return(0);
            }

            if (ReferenceEquals(null, other))
            {
                return(1);
            }

            var result = string.Compare(Id, other.Id, StringComparison.InvariantCulture);

            if (result == 0)
            {
                result = string.Compare(Type, other.Type, StringComparison.InvariantCulture);
            }

            if (result == 0)
            {
                result = TypeVersion.CompareTo(other.TypeVersion);
            }

            if (result == 0)
            {
                result = DataVersion.CompareTo(other.DataVersion);
            }

            if (result == 0)
            {
                result = Comparer <Metadata> .Default.Compare(Metadata, other.Metadata);
            }

            return(result);
        }