Example #1
0
 public override bool Equals(object obj)
 {
     if (obj is Test t)
     {
         return(Name.Equals(t.Name) &&
                TestList.SequenceEqual(t.TestList) &&
                ListInList.SequenceEqual(t.ListInList, new ListEqualityComparer <int>()) &&
                ListOfObject.SequenceEqual(t.ListOfObject) &&
                TestObject.Equals(t.TestObject) &&
                FloatValue.Equals(t.FloatValue) &&
                BoolValue.Equals(t.BoolValue));
     }
     return(false);
 }
Example #2
0
        /// <summary>
        /// WARNING: This function returns true if the object being compared can provide an equal value, even if the types differ.
        /// Use IsIdenticalTo to check for complete equality (same type and value)
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            object compareObject = obj;

            if (obj == this)
            {
                return(true);
            }
            else if (obj == Empty || this == Empty)
            {
                return(false);
            }

            if (obj is BindingValue)
            {
                BindingValue bvObj = (BindingValue)obj;
                switch (bvObj._nativeValueType)
                {
                case BindingValueType.Boolean:
                    compareObject = bvObj.BoolValue;
                    break;

                case BindingValueType.String:
                    compareObject = bvObj.StringValue;
                    break;

                case BindingValueType.Double:
                    compareObject = bvObj.DoubleValue;
                    break;
                }
            }

            // XXX rewrite.  this is insanely inefficient to use a type check here to check what branch we took above
            if (compareObject is string)
            {
                return(StringValue.Equals(compareObject));
            }
            else if (compareObject is double)
            {
                return(DoubleValue.Equals(compareObject));
            }
            else if (compareObject is bool)
            {
                return(BoolValue.Equals(compareObject));
            }


            return(false);
        }
Example #3
0
        public override bool Equals(object obj)
        {
            object compareObject = obj;

            if (obj == this)
            {
                return(true);
            }
            else if (obj == Empty || this == Empty)
            {
                return(false);
            }

            if (obj is BindingValue)
            {
                BindingValue bvObj = (BindingValue)obj;
                switch (bvObj._nativeValueType)
                {
                case BindingValueType.Boolean:
                    compareObject = bvObj.BoolValue;
                    break;

                case BindingValueType.String:
                    compareObject = bvObj.StringValue;
                    break;

                case BindingValueType.Double:
                    compareObject = bvObj.DoubleValue;
                    break;
                }
            }

            if (compareObject is string)
            {
                return(StringValue.Equals(compareObject));
            }
            else if (compareObject is double)
            {
                return(DoubleValue.Equals(compareObject));
            }
            else if (compareObject is bool)
            {
                return(BoolValue.Equals(compareObject));
            }


            return(false);
        }