public IOperation CreateOperation(OperationTypes operationType)
        {
            IOperation newOperation = null;

            switch (operationType)
            {
            case OperationTypes.Addition:
                newOperation = new AdditionOperation();
                break;

            case OperationTypes.Subtraction:
                newOperation = new SubtractionOperation();
                break;

            case OperationTypes.Multiplication:
                newOperation = new MultiplicationOperation();
                break;

            case OperationTypes.Division:
                newOperation = new DivisionOperation();
                break;

            case OperationTypes.Modulus:
                newOperation = new ModulusOperation();
                break;

            case OperationTypes.Undefined:
                newOperation = new NullOperation();
                break;
            }

            return(newOperation);
        }
        public string Visit(NullOperation operation)
        {
            Contract.RequiresNotNull(operation, "operation != null");

            return($"{Visit(operation.LeftSide)} is null");
        }
 private MyNull()
 {
     Calculator = NullOperation.GetInstance();
 }