internal static CseObject Affirm(CseObject obj) {
CseObject result = (CseObject)obj.Clone();
dynamic value = obj.Value;
double numValue;
if (value is string)
throw new CseLogicException(CseLogicExceptionType.CANT_AFFIRM_NON_NUM, value.ToString());
else if (!double.TryParse(value.ToString(), out numValue)) {
MethodInfo mi = value.GetType().GetMethod(OpOverloadNames.UPLUS);
if (null != mi) {
result.Value = value.GetType().InvokeMember(OpOverloadNames.UPLUS, OpOverloadNames.Flags, null, CsEval.evalEnvironment, new object[] { value });
return result;
}
else
throw new CseLogicException(CseLogicExceptionType.CANT_AFFIRM_NON_NUM, value.ToString());
}
return result;
}