Exemplo n.º 1
0
        public static Operator CreateSubtraction <TIn1, TIn2, TResult>(BinaryOperatorCallback <TIn1, TIn2, TResult> eval)
            where TIn1 : IMeasurement <TIn1>
            where TIn2 : IMeasurement <TIn2>
            where TResult : IMeasurement <TResult>
        {
            Validate.NonNull(eval, nameof(eval));

            return(new BinaryOperator(
                       typeof(TIn1),
                       typeof(TIn2),
                       BinaryOperatorType.Subtraction,
                       (x, y) => InvokeBinaryOperator(x, y, eval)
                       ));
        }
Exemplo n.º 2
0
        private static object InvokeBinaryOperator <TIn1, TIn2, TResult>(object x, object y, BinaryOperatorCallback <TIn1, TIn2, TResult> eval)
            where TIn1 : IMeasurement <TIn1> where TIn2 : IMeasurement <TIn2> where TResult : IMeasurement <TResult>
        {
            if (x is TIn1 in1 && y is TIn2 in2)
            {
                return(eval(in1, in2));
            }

            return(null);
        }