示例#1
0
        public static void Update_ReferenceNotEquals(bool useInterpreter)
        {
            TestClass        testClass1 = new TestClass();
            TestClass        testClass2 = new TestClass();
            BinaryExpression equal      = Expression.NotEqual(Expression.Constant(testClass1), Expression.Constant(testClass2));
            BinaryExpression newEqual   = equal.Update(Expression.Constant(testClass1), equal.Conversion, Expression.Constant(testClass1));

            // Original BinaryExpression should be unchanged
            GeneralBinaryTests.CompileBinaryExpression(equal, useInterpreter, true);
            GeneralBinaryTests.CompileBinaryExpression(newEqual, useInterpreter, false);
        }
示例#2
0
        public static void Equal_Constant_DefaultNullable(bool useInterpreter)
        {
            var array  = new Expression[] { Expression.Constant(42, typeof(int?)), Expression.Constant(null, typeof(int?)), Expression.Default(typeof(int?)) };
            var isNull = new bool[] { false, true, true };

            for (int i = 0; i < array.Length; i++)
            {
                for (int j = 0; j < array.Length; j++)
                {
                    BinaryExpression equal = Expression.Equal(array[i], array[j]);
                    GeneralBinaryTests.CompileBinaryExpression(equal, useInterpreter, isNull[i] == isNull[j]);
                }
            }
        }
示例#3
0
        public static void NotEqual(Array array, bool useInterpreter)
        {
            Type type = array.GetType().GetElementType();

            for (int i = 0; i < array.Length; i++)
            {
                for (int j = 0; j < array.Length; j++)
                {
                    object           a     = array.GetValue(i);
                    object           b     = array.GetValue(j);
                    BinaryExpression equal = Expression.NotEqual(Expression.Constant(a, type), Expression.Constant(b, type));
                    GeneralBinaryTests.CompileBinaryExpression(equal, useInterpreter, !GeneralBinaryTests.CustomEquals(a, b));
                }
            }
        }