public static void CustomOpIncrement(Incrementable operand, Incrementable expected, bool useInterpreter) { Func <Incrementable> func = Expression.Lambda <Func <Incrementable> >( Expression.Increment(Expression.Constant(operand))).Compile(useInterpreter); Assert.Equal(expected.Value, func().Value); }
public static void UserDefinedOpIncrement(Incrementable operand, Incrementable expected, bool useInterpreter) { MethodInfo method = typeof(IncrementDecrementTests).GetMethod(nameof(DoublyIncrement)); Func <Incrementable> func = Expression.Lambda <Func <Incrementable> >( Expression.Increment(Expression.Constant(operand), method)).Compile(useInterpreter); Assert.Equal(expected.Value, func().Value); }
public static Incrementable DoublyIncrement(Incrementable operand) => new Incrementable(operand.Value + 2);
public static void UserDefinedOpIncrement(Incrementable operand, Incrementable expected, bool useInterpreter) { MethodInfo method = typeof(IncrementDecrementTests).GetMethod(nameof(DoublyIncrement)); Func<Incrementable> func = Expression.Lambda<Func<Incrementable>>( Expression.Increment(Expression.Constant(operand), method)).Compile(useInterpreter); Assert.Equal(expected.Value, func().Value); }
public static void CustomOpIncrement(Incrementable operand, Incrementable expected, bool useInterpreter) { Func<Incrementable> func = Expression.Lambda<Func<Incrementable>>( Expression.Increment(Expression.Constant(operand))).Compile(useInterpreter); Assert.Equal(expected.Value, func().Value); }
public static void CustomOpIncrement(Incrementable? operand, Incrementable? expected, bool useInterpreter) { Func<Incrementable?> func = Expression.Lambda<Func<Incrementable?>>( Expression.Increment(Expression.Constant(operand, typeof(Incrementable?)))).Compile(useInterpreter); Assert.Equal(expected, func()); }
public static Incrementable DoublyIncrement(Incrementable operand) => new Incrementable(unchecked (operand.Value + 2));