/// <summary> /// Feature:Number /// </summary> /// <param name="number">number</param> /// <returns>FrameUpdate</returns> public FrameUpdate AddNumber(char number) { Feature CurrentFeature = Feature.NUMBER; return(ThrowOrderException <FrameUpdate>(CurrentFeature, () => { FrameUpdate frameUpdate = NumberMachine.AddNumber(number); //等號後輸入數字 if (PreviousFeature == Feature.EQUAL) { frameUpdate.RemoveLength = ExpUpdate.REMOVE_ALL; //執行成功時記錄下這次的Cast PreviousFeature = CurrentFeature; return frameUpdate; } //backspace或clearerror之後的數字處理 if ((PreviousFeature == Feature.BACKSPACE || PreviousFeature == Feature.CLEAR_ERROR) && NumberMachine.NumberField.Number == 0) { frameUpdate.RemoveLength += 1; //執行成功時記錄下這次的Cast PreviousFeature = CurrentFeature; return frameUpdate; } //執行成功時記錄下這次的Cast PreviousFeature = CurrentFeature; return frameUpdate; })); }
//以下新的 public NumberUpdate AddNumber(char number) { Feature CurrentCast = Feature.NUMBER; return(CheckOrder <NumberUpdate>(CurrentCast, () => { NumberUpdate successResponse; //等號後輸入數字 if (PreviousCast == Feature.EQUAL) { successResponse = NumberMachine.AddNumber(number); successResponse.RemoveLength = Updates.REMOVE_ALL; PreviousCast = CurrentCast; return successResponse; } //backspace或clearerror之後的數字處理 if ((PreviousCast == Feature.BACKSPACE || PreviousCast == Feature.CLEAR_ERROR) && NumberMachine.NumberField.Number == 0) { successResponse = NumberMachine.AddNumber(number); successResponse.RemoveLength += 1; //執行成功時記錄下這次的Cast PreviousCast = CurrentCast; return successResponse; } successResponse = NumberMachine.AddNumber(number); //執行成功時記錄下這次的Cast PreviousCast = CurrentCast; return successResponse; })); }