예제 #1
0
        public override bool Equals(BaseEnum0 other)
        {
            if (!IsSameType(other))
            {
                return(false);
            }

            var o = (BaseEnum <T, T2>)other;

            return(EqualityComparer <T> .Default.Equals(Value, o.Value) &&
                   EqualityComparer <T2> .Default.Equals(Value2, o.Value2));
        }
예제 #2
0
        public override int CompareTo(BaseEnum0 other)
        {
            if (!IsSameType(other))
            {
                return(1);
            }

            var o = (BaseEnum <T, T2>)other;
            var c = Comparer <T> .Default.Compare(Value, o.Value);

            if (c != 0)
            {
                return(c);
            }

            return(Comparer <T2> .Default.Compare(Value2, o.Value2));
        }
예제 #3
0
 public override int CompareTo(BaseEnum0 other)
 => IsSameType(other) ?
 Comparer <T> .Default.Compare(Value, ((BaseEnum <T>)other).Value) :
 1;
예제 #4
0
 public override bool Equals(BaseEnum0 other)
 => ReferenceEquals(this, other) || (IsSameType(other) && EqualityComparer <T> .Default.Equals(((BaseEnum <T>)other).Value, Value));