private static object InvokeUrnaryOperator <TIn1, TResult>(object x, UrnaryOperatorCallback <TIn1, TResult> eval) where TIn1 : IMeasurement <TIn1> where TResult : IMeasurement <TResult> { if (x is TIn1 in1) { return(eval(in1)); } return(null); }
public static Operator CreateUrnaryPositive <TIn, TResult>(UrnaryOperatorCallback <TIn, TResult> eval) where TIn : IMeasurement <TIn> where TResult : IMeasurement <TResult> { Validate.NonNull(eval, nameof(eval)); return(new UrnaryOperator( typeof(TIn), UrnaryOperatorType.Positation, (x) => InvokeUrnaryOperator(x, eval) )); }