public static Number Calculate(IUnaryOperandCalculator cal, Number num) { if (num == null) { return(0); } switch (num.TypeCode) { case NumberTypeCode.Int32: return(cal.Calculate((int)num)); case NumberTypeCode.Int64: return(cal.Calculate((long)num)); case NumberTypeCode.BigInteger: return(cal.Calculate((BigInteger)num)); case NumberTypeCode.Double: case NumberTypeCode.Decimal: case NumberTypeCode.BigDecimal: return(cal.Calculate((BigDecimal)num)); } throw new ArgumentException("unsupported add calculate: " + num.GetType()); }
public static Number Calculate(IUnaryOperandCalculator cal, Number num) { if (num == null) { return 0; } switch (num.TypeCode) { case NumberTypeCode.Int32: return cal.Calculate((int)num); case NumberTypeCode.Int64: return cal.Calculate((long)num); case NumberTypeCode.BigInteger: return cal.Calculate((BigInteger)num); case NumberTypeCode.Double: case NumberTypeCode.Decimal: case NumberTypeCode.BigDecimal: return cal.Calculate((BigDecimal)num); } throw new ArgumentException("unsupported add calculate: " + num.GetType()); }