public override double Calculate() { double operandValue = Operand.Calculate(); switch (Operation) { case "-": value = -operandValue; break; case "sign": if (operandValue > 0) { value = 1; } else if (operandValue < 0) { value = -1; } else { value = 0; } break; case "sqr": value = operandValue * operandValue; break; case "sqrt": value = Math.Sqrt(operandValue); break; default: throw new Exception("Неизвестный унарный оператор:" + Operation); } return(value); }
public override double Calculate() { var operandResult = Operand.Calculate(); if (operandResult < 0) { throw new ArgumentOutOfRangeException(); } return(Math.Sqrt(operandResult)); }
public override double Calculate() { return(Math.Pow(Operand.Calculate(), 2)); }