/// <summary> /// 新增雙元運算子 /// </summary> /// <param name="binaryName">雙元運算子</param> /// <returns>雙元運算子響應</returns> public FrameUpdate AddBinary(char binaryName) { Feature CurrentFeature = Feature.BINARY; return(ThrowOrderException <FrameUpdate>(CurrentFeature, () => { FrameUpdate frameUpdate; if (PreviousFeature == Feature.Null) { NumberMachine.AddNumber('0'); frameUpdate = NumberMachine.AddBinary(binaryName); //要補0 frameUpdate.UpdateString = $"0{frameUpdate.UpdateString}"; } else if (PreviousFeature == Feature.BINARY) { frameUpdate = NumberMachine.ModifyBinary(binaryName); } else { frameUpdate = NumberMachine.AddBinary(binaryName); } //執行成功時記錄下這次的Cast PreviousFeature = Feature.BINARY; return frameUpdate; })); }
/// <summary> /// 新增雙元運算子 /// </summary> /// <param name="binaryName">雙元運算子</param> /// <returns>雙元運算子響應</returns> public BinaryUpdate AddBinary(char binaryName) { Feature CurrentCast = Feature.BINARY; return(CheckOrder <BinaryUpdate>(CurrentCast, () => { BinaryUpdate successResponse; if (PreviousCast == Feature.Null) { NumberMachine.AddNumber('0'); successResponse = NumberMachine.AddBinary(binaryName); //要補0 successResponse.UpdateString = $"0{successResponse.UpdateString}"; } else if (PreviousCast == Feature.BINARY) { successResponse = NumberMachine.ModifyBinary(binaryName); } else { successResponse = NumberMachine.AddBinary(binaryName); } //執行成功時記錄下這次的Cast PreviousCast = Feature.BINARY; return successResponse; })); }